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
Mutex & operator= (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.)

Mutex * wrap (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