public member function


void unlock();
Unlocks mutex
Unlocks the recursive_mutex, releasing one level of ownership over it.

If the calling thread had a single level of ownership over the recursive_mutex, it is completely unlocked: If other threads are currently blocked attempting to lock this same recursive_mutex, one of them acquires ownership over it and continues its execution.

All lock and unlock operations on the recursive_mutex follow a single total order, with all visible effects synchronized between the lock operations and previous unlock operations on the same object.

If the recursive_mutex is not currently locked by the calling thread, it causes undefined behavior.



Return value


Data races

The recursive_mutex object is modified as an atomic operation (causes no data races).

Exception safety

If the recursive_mutex is currently locked by the calling thread, this function never throws exceptions (no-throw guarantee).
Otherwise, it causes undefined behavior.

See also