mutex is already locked by another thread, the
current thread will block until
mutex is unlocked by the other thread.
GMutex is neither guaranteed to be recursive nor to be
non-recursive. As such, calling
g_mutex_lock() on a
GMutex that has
already been locked by the same thread results in undefined behaviour
(including but not limited to deadlocks).