glibmm: Glib::Threads::Mutex Class Reference

glibmm 2.38.1

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Examples

- Class List
- Class Index
- Class Hierarchy
- Class Members

Classes | Public Member Functions | Related Functions | List of all members
Glib::Threads::Mutex Class Reference
Threads

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 ()
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::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::Threads::Mutex::Mutex | ( |  | ) |

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

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