Defined in header
recursive_mutex class is a synchronization primitive that can be used to protect shared data from being simultaneously accessed by multiple threads.
recursive_mutex offers exclusive, recursive ownership semantics:
- A calling thread owns a
recursive_mutexfor a period of time that starts when it successfully calls either
try_lock. During this period, the thread may make additional calls to
try_lock. The period of ownership ends when the thread makes a matching number of calls to
- When a thread owns a
recursive_mutex, all other threads will block (for calls to
lock) or receive a false return value (for
try_lock) if they attempt to claim ownership of the
- The maximum number of times that a
recursive_mutexmay be locked is unspecified, but after that number is reached, calls to
lockwill throw std::system_error and calls to
try_lockwill return false.
The behavior of a program is undefined if a
recursive_mutex is destroyed while still owned by some thread. The
recursive_mutex class is non-copyable.