10#include <userver/engine/deadline.hpp>
11#include <userver/engine/impl/wait_list_fwd.hpp>
13USERVER_NAMESPACE_BEGIN
33 Mutex(
const Mutex&) =
delete;
34 Mutex(Mutex&&) =
delete;
35 Mutex& operator=(
const Mutex&) =
delete;
36 Mutex& operator=(Mutex&&) =
delete;
68 template <
typename Rep,
typename Period>
69 [[nodiscard]]
bool try_lock_for(
const std::chrono::duration<Rep, Period>&);
80 template <
typename Clock,
typename Duration>
82 const std::chrono::time_point<Clock, Duration>&);
90 utils::FastPimpl<Impl, 96,
alignof(
void*)> impl_;
93template <
typename Rep,
typename Period>
94bool Mutex::
try_lock_for(
const std::chrono::duration<Rep, Period>& duration) {
95 return try_lock_until(Deadline::FromDuration(duration));
98template <
typename Clock,
typename Duration>
100 const std::chrono::time_point<Clock, Duration>& until) {
101 return try_lock_until(Deadline::FromTimePoint(until));