Mutex Class Reference

Mutex support. More...

#include <yateclass.h>

Inheritance diagram for Mutex:

Lockable ClientAccount ClientAccountList DataSource MessageDispatcher Module ThreadedSource Driver ClientDriver

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:
recursive True if the mutex has to be recursive (reentrant), false for a normal fast mutex
name Static name of the mutex (for debugging purpose only)

Mutex ( const Mutex original  ) 

Copy constructor, creates a shared mutex

Parameters:
original Reference of the mutex to share

~Mutex (  ) 

Destroy the mutex


Member Function Documentation

Mutex& operator= ( const Mutex original  ) 

Assignment operator makes the mutex shared with the original

Parameters:
original Reference of the mutex to share

virtual bool lock ( long  maxwait = -1  )  [virtual]

Attempt to lock the mutex and eventually wait for it

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

Implements Lockable.

virtual bool unlock (  )  [virtual]

Unlock the mutex, does never wait

Returns:
True if successfully unlocked the mutex

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.

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

static int count (  )  [static]

Get the number of mutexes counting the shared ones only once

Returns:
Count of individual mutexes

static int locks (  )  [static]

Get the number of currently locked mutexes

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

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


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

Generated on Sat May 28 18:28:23 2011 for Yate by  doxygen 1.5.6