class Mutex

Mutex support. More...

Full nameTelEngine::Mutex
Definition#include <yateclass.h>
InheritsTelEngine::Lockable [public ]
Inherited byClientAccount, ClientAccountList, ClientDriver, DataSource, Driver, MessageDispatcher, Module, SharedVars, ThreadedSource
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

explicit  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.

const char*  owner ()

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 ()

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 Fri Dec 21 16:28:34 2012, using kdoc 2.0a54.