A Discrete-Event Network Simulator
API
Public Member Functions | Private Attributes | List of all members
ns3::SystemMutex Class Reference

A class which provides a relatively platform-independent Mutual Exclusion thread synchronization primitive. More...

#include "system-mutex.h"

Public Member Functions

 SystemMutex ()
 
 ~SystemMutex ()
 
void Lock ()
 Acquire ownership of the Mutual Exclusion object. More...
 
void Unlock ()
 Release ownership of the Mutual Exclusion object. More...
 

Private Attributes

SystemMutexPrivatem_priv
 The (system-dependent) implementation. More...
 

Detailed Description

A class which provides a relatively platform-independent Mutual Exclusion thread synchronization primitive.

When more than one thread needs to access a shared resource (data structure or device), the system needs to provide a way to serialize access to the resource. An operating system will typically provide a Mutual Exclusion primitive to provide that capability. We provide platform-independent access to the OS-dependent capability with the SystemMutex class.

There are two operations: Lock and Unlock. Lock allows an executing SystemThread to attempt to acquire ownership of the Mutual Exclusion object. If the SystemMutex object is not owned by another thread, then ownership is granted to the calling SystemThread and Lock returns immediately, However, if the SystemMutex is already owned by another SystemThread, the calling SystemThread is blocked until the current owner releases the SystemMutex by calling Unlock.

See also
CriticalSection

Definition at line 58 of file system-mutex.h.

Constructor & Destructor Documentation

◆ SystemMutex()

ns3::SystemMutex::SystemMutex ( )

Definition at line 109 of file unix-system-mutex.cc.

References NS_LOG_FUNCTION.

◆ ~SystemMutex()

ns3::SystemMutex::~SystemMutex ( )

Definition at line 115 of file unix-system-mutex.cc.

References m_priv, and NS_LOG_FUNCTION.

Member Function Documentation

◆ Lock()

void ns3::SystemMutex::Lock ( )

Acquire ownership of the Mutual Exclusion object.

Definition at line 122 of file unix-system-mutex.cc.

References ns3::SystemMutexPrivate::Lock(), m_priv, and NS_LOG_FUNCTION.

Referenced by ns3::CriticalSection::CriticalSection().

◆ Unlock()

void ns3::SystemMutex::Unlock ( )

Release ownership of the Mutual Exclusion object.

Definition at line 129 of file unix-system-mutex.cc.

References m_priv, NS_LOG_FUNCTION, and ns3::SystemMutexPrivate::Unlock().

Referenced by ns3::CriticalSection::~CriticalSection().

Member Data Documentation

◆ m_priv

SystemMutexPrivate* ns3::SystemMutex::m_priv
private

The (system-dependent) implementation.

Definition at line 76 of file system-mutex.h.

Referenced by Lock(), Unlock(), and ~SystemMutex().


The documentation for this class was generated from the following files: