class Mutex

Mutex support. More...

Full nameTelEngine::Mutex
Definition#include <yateclass.h>
InheritsTelEngine::Lockable [public ]
Inherited byAnalogLine, AnalogLineGroup, ChanAssistList, ClientAccount, ClientAccountList, ClientDriver, DataSource, Driver, IAXEngine, IAXMetaTrunkFrame, IAXTransaction, ISDNQ931, ISDNQ931Call, ISDNQ931CallMonitor, ISDNQ931Monitor, JBEngine, JBMessage, JBPresence, JBService, JGEngine, JGSession, JGSession0, JGSession1, JIDResourceList, MGCPEndpoint, MGCPEngine, MGCPTransaction, MessageDispatcher, Module, MultiRouter, RTPGroup, SDPParser, SIPEngine, SS7BICC, SS7ISUP, SS7ISUPCall, SS7MTP2, SS7MTP3, SS7Route, SS7Router, SS7TUP, SignallingCall, SignallingCallControl, SignallingCircuitGroup, SignallingEngine, ThreadedSource, XMLParser, XMPPUser, XMPPUserRoster
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Methods

Public Static Methods


Detailed Description

A simple mutual exclusion for locking access between threads

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

Mutex

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)

Mutex

Copy constructor, creates a shared mutex

Parameters:
originalReference of the mutex to share

 ~Mutex ()

~Mutex

Destroy the mutex

Mutex&  operator= (const Mutex& original)

operator=

Assignment operator makes the mutex shared with the original

Parameters:
originalReference of the mutex to share

bool  lock (long maxwait = -1)

lock

[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

Reimplemented from Lockable.

bool  unlock ()

unlock

[virtual]

Unlock the mutex, does never wait

Returns: True if successfully unlocked the mutex

Reimplemented from Lockable.

bool  locked ()

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

Reimplemented from Lockable.

bool  recursive ()

recursive

[const]

Check if this mutex is recursive or not

Returns: True if this is a recursive mutex, false for a fast mutex

int  count ()

count

[static]

Get the number of mutexes counting the shared ones only once

Returns: Count of individual mutexes

int  locks ()

locks

[static]

Get the number of currently locked mutexes

Returns: Count of locked mutexes, should be zero at program exit

bool  efficientTimedLock ()

efficientTimedLock

[static]

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

Returns: True if a lock with a maxwait parameter is efficiently implemented


Generated by: paulc on bussard on Wed Oct 21 01:57:30 2009, using kdoc 2.0a54.