# Glib::Mutex Class Reference
Threads

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

`#include <glibmm/thread.h>`

List of all members.

## Classes

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

## Public Member Functions

| Mutex ()
| ~Mutex ()
void | lock ()
| Locks the mutex.
bool | trylock ()
| Tries to lock the mutex.
void | unlock ()
| Unlocks the mutex.
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:
  Before creating a Glib::Mutex, Glib::thread_init() has to be called.
  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::Mutex::Mutex | ( |  | ) |

Glib::Mutex::~Mutex | ( |  | ) |

## Member Function Documentation

GMutex* Glib::Mutex::gobj | ( |  | ) | `[inline]`

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

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

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