Yate
Public Member Functions | Static Public Member Functions | Friends
Mutex Class Reference

Mutex support. More...

#include <yateclass.h>

Inheritance diagram for Mutex:
Lockable AnalogLine ClientAccount ClientAccountList DataSource IAXEngine IAXMediaData IAXMetaTrunkFrame IAXTransaction JBEngine JBEntityCapsList JBStream JBStreamSet JBStreamSetList JGEngine JGSession MessageDispatcher MGCPEndpoint MGCPEngine MGCPTransaction Module MultiRouter RTPGroup RTPSession SccpLocalSubsystem SCCPManagement SccpRemote ScriptRun SDPParser SIGAdaptation SignallingCall SignallingCallControl SignallingCircuitGroup SignallingEngine SIPEngine SS7Management SS7MTP2 SS7MTP3 SS7Route SS7Router SS7SCCP SS7TCAPTransaction SS7Testing UDPTLSession

List of all members.

Public Member Functions

 Mutex (bool recursive=false, const char *name=0)
 Mutex (const Mutex &original)
 ~Mutex ()
Mutexoperator= (const Mutex &original)
virtual bool lock (long maxwait=-1)
virtual bool unlock ()
virtual bool locked () const
const char * owner () const
bool recursive () const

Static Public Member Functions

static int count ()
static int locks ()
static bool efficientTimedLock ()

Friends

class MutexPrivate

Detailed Description

Mutex support.

A simple mutual exclusion for locking access between threads


Constructor & Destructor Documentation

Mutex ( bool  recursive = false,
const char *  name = 0 
) [explicit]

Construct a new unlocked mutex

Parameters:
recursiveTrue if the mutex has to be recursive (reentrant), false for a normal fast mutex
nameStatic name of the mutex (for debugging purpose only)
Mutex ( const Mutex original)

Copy constructor, creates a shared mutex

Parameters:
originalReference of the mutex to share
~Mutex ( )

Destroy the mutex


Member Function Documentation

static int count ( ) [static]

Get the number of mutexes counting the shared ones only once

Returns:
Count of individual mutexes
static bool efficientTimedLock ( ) [static]

Check if a timed lock() is efficient on this platform

Returns:
True if a lock with a maxwait parameter is efficiently implemented
virtual bool lock ( long  maxwait = -1) [virtual]

Attempt to lock the mutex and eventually wait for it

Parameters:
maxwaitTime in microseconds to wait for the mutex, -1 wait forever
Returns:
True if successfully locked, false on failure

Implements Lockable.

virtual bool locked ( ) const [virtual]

Check if the mutex is currently locked - as it's asynchronous it guarantees nothing if other thread changes the mutex's status

Returns:
True if the mutex was locked when the function was called

Implements Lockable.

static int locks ( ) [static]

Get the number of currently locked mutexes

Returns:
Count of locked mutexes, should be zero at program exit
Mutex& operator= ( const Mutex original)

Assignment operator makes the mutex shared with the original

Parameters:
originalReference of the mutex to share
const char* owner ( ) const

Retrieve the name of the Thread (if any) holding the Mutex locked

Returns:
Thread name() or NULL if thread not named
bool recursive ( ) const

Check if this mutex is recursive or not

Returns:
True if this is a recursive mutex, false for a fast mutex
virtual bool unlock ( ) [virtual]

Unlock the mutex, does never wait

Returns:
True if successfully unlocked the mutex

Implements Lockable.


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