Nix 2.93.3
Lix: A modern, delicious implementation of the Nix package manager; unstable internal interfaces
Loading...
Searching...
No Matches
nix::Sync< T, M >::Lock Class Reference

Public Member Functions

 Lock (Lock &&l)
Lock & operator= (Lock &&other)
 Lock (const Lock &l)=delete
T * operator-> ()
T & operator* ()
void wait (std::condition_variable &cv)
template<class Rep, class Period>
std::cv_status wait_for (std::condition_variable &cv, const std::chrono::duration< Rep, Period > &duration)
template<class Rep, class Period, class Predicate>
bool wait_for (std::condition_variable &cv, const std::chrono::duration< Rep, Period > &duration, Predicate pred)
template<class Clock, class Duration>
std::cv_status wait_until (std::condition_variable &cv, const std::chrono::time_point< Clock, Duration > &duration)

Protected Member Functions

 Lock (Sync &s)
 Lock (Sync &s, std::unique_lock< M > lk)
void checkLockingInvariants ()

Protected Attributes

Sync * s
std::unique_lock< M > lk
friend Sync

Member Function Documentation

◆ wait()

template<class T, class M = std::mutex>
void nix::Sync< T, M >::Lock::wait ( std::condition_variable & cv)
inline

Wait for the given condition variable with no timeout.

May spuriously wake up.

◆ wait_for() [1/2]

template<class T, class M = std::mutex>
template<class Rep, class Period>
std::cv_status nix::Sync< T, M >::Lock::wait_for ( std::condition_variable & cv,
const std::chrono::duration< Rep, Period > & duration )
inline

Wait for the given condition variable for a maximum elapsed time of duration.

May spuriously wake up.

◆ wait_for() [2/2]

template<class T, class M = std::mutex>
template<class Rep, class Period, class Predicate>
bool nix::Sync< T, M >::Lock::wait_for ( std::condition_variable & cv,
const std::chrono::duration< Rep, Period > & duration,
Predicate pred )
inline

Wait for the given condition variable for a maximum elapsed time of duration. Calls pred to check if the wakeup should be heeded: pred returning false will ignore the wakeup.

◆ wait_until()

template<class T, class M = std::mutex>
template<class Clock, class Duration>
std::cv_status nix::Sync< T, M >::Lock::wait_until ( std::condition_variable & cv,
const std::chrono::time_point< Clock, Duration > & duration )
inline

Wait for the given condition variable or until the time point duration.


The documentation for this class was generated from the following file: