std::recursive_timed_mutex

From cppreference.com
< cpp‎ | thread
 
 
Concurrency support library
Threads
(C++11)
(C++20)
(C++20)
this_thread namespace
(C++11)
(C++11)
(C++11)
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11)(deprecated in C++20)
(C++11)(deprecated in C++20)
Free functions for atomic operations
Free functions for atomic flags
Memory ordering
Mutual exclusion
(C++11)
recursive_timed_mutex
(C++11)
Generic lock management
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
Condition variables
(C++11)
Semaphores
Latches and barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
 
 
Defined in header <mutex>
class recursive_timed_mutex;
(since C++11)

The recursive_timed_mutex class is a synchronization primitive that can be used to protect shared data from being simultaneously accessed by multiple threads.

In a manner similar to std::recursive_mutex, recursive_timed_mutex provides exclusive, recursive ownership semantics. In addition, recursive_timed_mutex provides the ability to attempt to claim ownership of a recursive_timed_mutex with a timeout via the try_lock_for and try_lock_until member functions.

The recursive_timed_mutex class satisfies all requirements of TimedMutex and StandardLayoutType.

Member types

Member type Definition
native_handle_type(not always present) implementation-defined

Member functions

constructs the mutex
(public member function)
destroys the mutex
(public member function)
operator=
[deleted]
not copy-assignable
(public member function)
Locking
locks the mutex, blocks if the mutex is not available
(public member function)
tries to lock the mutex, returns if the mutex is not available
(public member function)
tries to lock the mutex, returns if the mutex has been
unavailable for the specified timeout duration
(public member function)
tries to lock the mutex, returns if the mutex has been
unavailable until specified time point has been reached
(public member function)
unlocks the mutex
(public member function)
Native handle
returns the underlying implementation-defined native handle object
(public member function)