Documentation Home >> Headers >> <mutex> Header >> std::recursive_timed_mutex >> std::recursive_timed_mutex::try_lock_until Member Function

Attempt to acquire a lock on a std::recursive_timed_mutex object for the current thread.

template<typename Clock,typename Duration>
bool try_lock_until(
    std::chrono::time_point<Clock,Duration> const&
    absolute_time);

Effects:

Attempts to acquire a lock on *this for the calling thread before the time specified by absolute_time. If absolute_time<=Clock::now() on entry then the call will return immediately, as if it was a call to try_lock(). Otherwise, the call shall block until either the lock has been acquired or Clock::now() returns a time equal to or later than absolute_time.

Returns:

true if a lock was obtained for the calling thread, false otherwise.

Postconditions:

*this is locked by the calling thread if the function returns true.

Throws:

Nothing.

Note:

If the calling thread already holds the lock on *this, the function returns true and the count of locks on *this held by the calling thread is increased by one. If the current thread does not already hold a lock on *this, the function may fail to acquire the lock (and return false) even if no other thread holds a lock on *this. There is no guarantee as to how long the calling thread will be blocked for, only that if the function returns false then Clock::now() returned a time equal to or later than absolute_time at the point at which the thread became unblocked.

Throws:

Nothing

Header

#include <mutex>

See Also