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 | |
SystemMutexPrivate * | m_priv |
The (system-dependent) implementation. More... | |
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 plattorm-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.
Definition at line 58 of file system-mutex.h.
ns3::SystemMutex::SystemMutex | ( | ) |
Definition at line 109 of file unix-system-mutex.cc.
References NS_LOG_FUNCTION.
ns3::SystemMutex::~SystemMutex | ( | ) |
Definition at line 115 of file unix-system-mutex.cc.
References m_priv, and NS_LOG_FUNCTION.
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().
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().
|
private |
The (system-dependent) implementation.
Definition at line 76 of file system-mutex.h.
Referenced by Lock(), Unlock(), and ~SystemMutex().