glibmm: Glib::Threads::Mutex Class Reference

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

#include <glibmm/threads.h>


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.

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.
Please use std::mutex instead.

Constructor & Destructor Documentation

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

Member Function Documentation

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

Whether the mutex could be locked.
See also
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