glibmm 2.66.5
Classes | Public Member Functions | List of all members
Glib::Mutex Class Reference

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

#include <glibmm/thread.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 ()
 

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::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.
Deprecated:
Use Glib::Threads::Mutex instead.

Constructor & Destructor Documentation

◆ Mutex() [1/2]

Glib::Mutex::Mutex ( )

◆ Mutex() [2/2]

Glib::Mutex::Mutex ( const Mutex )
delete

◆ ~Mutex()

Glib::Mutex::~Mutex ( )

Member Function Documentation

◆ gobj()

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

◆ lock()

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

◆ operator=()

Mutex & Glib::Mutex::operator= ( const Mutex )
delete

◆ trylock()

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

◆ unlock()

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