std::unique_lock<Mutex>::try_lock_until

From cppreference.com
< cpp‎ | thread‎ | unique lock
 
 
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)
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)
 
 
template< class Clock, class Duration >
bool try_lock_until( const std::chrono::time_point<Clock,Duration>& timeout_time );
(since C++11)

Tries to lock (i.e., takes ownership of) the associated mutex. Blocks until specified timeout_time has been reached or the lock is acquired, whichever comes first. On successful lock acquisition returns true, otherwise returns false. May block for longer than timeout_time until has been reached.

Effectively calls mutex()->try_lock_until(timeout_time)

std::system_error is thrown if there is no associated mutex or if the mutex is already locked by the same thread.

Clock must meet the Clock requirements. The program is ill-formed if std::chrono::is_clock_v<Clock> is false. (since C++20)

Parameters

timeout_time - maximum time point to block until

Return value

true if the ownership of the mutex has been acquired successfully, false otherwise.

Exceptions

  • Any exceptions thrown by mutex()->try_lock_until(timeout_time)

Example

See also

locks (i.e., takes ownership of) the associated mutex
(public member function)
tries to lock (i.e., takes ownership of) the associated mutex without blocking
(public member function)
attempts to lock (i.e., takes ownership of) the associated TimedLockable mutex, returns if the mutex has been unavailable for the specified time duration
(public member function)
unlocks (i.e., releases ownership of) the associated mutex
(public member function)