Documentation Home

Attempts to acquire a shared-ownership lock on the mutex associated with *this within the time specified.

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

Preconditions:

The Mutex type used to instantiate std::shared_lock must meet the TimedLockable requirements. this->mutex()!=NULL, this->owns_lock()==false.

Effects:

Calls this->mutex()->try_lock_shared_until(absolute_time).

Returns:

true if the call to this->mutex()->try_lock_shared_until() returned true, false otherwise.

Throws:

Any exceptions thrown by this->mutex()->try_lock_shared_until(). std::system_error with an error code of std::errc::operation_not_permitted if this->mutex()==NULL. std::system_error with an error code of std::errc::resource_deadlock_would_occur if this->owns_lock()==true on entry.

Postcondition:

If the function returns true, this->owns_lock()==true, otherwise this->owns_lock()==false.

Header

#include <shared_mutex>

See Also