glibmm: Glib::Threads::Mutex Class Reference

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

#include <glibmm/threads.h>

Classes

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

 

Public Member Functions

 Mutex ()
 
 Mutex (const Mutex&)=delete
 
Mutexoperator= (const Mutex&)=delete
 
 ~Mutex ()
 
void lock ()
 Locks the mutex. More...

 
bool trylock ()
 Tries to lock the mutex. More...

 
void unlock ()
 Unlocks the mutex. More...

 
GMutex* gobj ()
 

Related Functions

(Note that these are not member functions.)

Mutexwrap (GMutex* gobject)
 A C++ wrapper for the C object. 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
Glib::Threads::Mutex is not recursive, i.e. a thread will deadlock, if it already has locked the mutex while calling lock(). Use Glib::Threads::RecMutex instead, if you need recursive mutexes.
Deprecated:
Please use std::mutex instead.

Constructor & Destructor Documentation

Glib::Threads::Mutex::Mutex ( )
Glib::Threads::Mutex::Mutex ( const Mutex )
delete
Glib::Threads::Mutex::~Mutex ( )

Member Function Documentation

GMutex* Glib::Threads::Mutex::gobj ( )
inline
void Glib::Threads::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
Mutex& Glib::Threads::Mutex::operator= ( const Mutex )
delete
bool Glib::Threads::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::Threads::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