logo top
Main Page   Widgets   glibmm Namespaces   Book  

Glib::Mutex Class Reference
[Threads]

Represents a mutex (mutual exclusion). More...

List of all members.

Public Member Functions

 Mutex ()
 ~Mutex ()
void lock ()
 Locks the mutex.
bool trylock ()
 Tries to lock the mutex.
void unlock ()
 Unlocks the mutex.
GMutex* gobj ()

Classes

class  Lock
 Utility class for exception-safe mutex locking. More...


Detailed Description

Represents a mutex (mutual exclusion).

It can be used to protect data against shared access. Try to use Mutex::Lock instead of calling lock() and unlock() directly -- it will make your life much easier.

Note:
Before creating a Glib::Mutex, Glib::thread_init() has to be called.

Glib::Mutex is not recursive, i.e. a thread will deadlock, if it already has locked the mutex while calling lock(). Use Glib::RecMutex instead, if you need recursive mutexes.

Examples:

thread/thread.cc.


Constructor & Destructor Documentation

Glib::Mutex::Mutex (  ) 

Glib::Mutex::~Mutex (  ) 


Member Function Documentation

void Glib::Mutex::lock (  ) 

Locks the mutex.

If mutex is already locked by another thread, the current thread will block until mutex is unlocked by the other thread.

See also:
Mutex::Lock

bool Glib::Mutex::trylock (  ) 

Tries to lock the mutex.

If the mutex is already locked by another thread, it immediately returns false. Otherwise it locks the mutex and returns true.

Returns:
Whether the mutex could be locked.
See also:
Mutex::Lock

void Glib::Mutex::unlock (  ) 

Unlocks the mutex.

If another thread is blocked in a lock() call for this mutex, it will be woken and can lock the mutex itself.

See also:
Mutex::Lock

GMutex* Glib::Mutex::gobj (  )  [inline]


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

Generated for glibmm 2.4 by Doxygen 1.5.1 © 1997-2001