namespace std {
class timed_mutex {
public:
timed_mutex();
~timed_mutex();
timed_mutex(const timed_mutex&) = delete;
timed_mutex& operator=(const timed_mutex&) = delete;
void lock(); bool try_lock();
template <class Rep, class Period>
bool try_lock_for(const chrono::duration<Rep, Period>& rel_time);
template <class Clock, class Duration>
bool try_lock_until(const chrono::time_point<Clock, Duration>& abs_time);
void unlock();
using native_handle_type = implementation-defined; native_handle_type native_handle(); };
}
The class
timed_mutex provides a non-recursive mutex with exclusive ownership
semantics
. If one thread owns a
timed_mutex object, attempts by another thread
to acquire ownership of that object will fail (for
try_lock()) or block
(for
lock(),
try_lock_for(), and
try_lock_until()) until
the owning thread has released ownership with a call to
unlock() or the
call to
try_lock_for() or
try_lock_until() times out (having
failed to obtain ownership)
.