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

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

template<typename Rep,typename Period>
bool try_lock_for(
    std::chrono::duration<Rep,Period> const&
    relative_time);

Effects:

Attempts to acquire a lock on *this for the calling thread within the time specified by relative_time. If relative_time.count() is zero or negative 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 the time period specified by relative_time has elapsed.

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. The thread may be blocked for longer than the specified duration. Where possible, the elapsed time is determined by a steady clock.

Throws:

Nothing

Header

#include <mutex>

See Also