YACLib
C++ library for concurrent tasks execution
Loading...
Searching...
No Matches
yaclib::detail::fiber::SharedTimedMutex Class Reference

#include <shared_timed_mutex.hpp>

Inheritance diagram for yaclib::detail::fiber::SharedTimedMutex:
[legend]
Collaboration diagram for yaclib::detail::fiber::SharedTimedMutex:
[legend]

Public Member Functions

template<typename Rep , typename Period >
bool try_lock_for (const std::chrono::duration< Rep, Period > &timeout_duration)
 
template<typename Clock , typename Duration >
bool try_lock_until (const std::chrono::time_point< Clock, Duration > &timeout_time)
 
template<typename Rep , typename Period >
bool try_lock_shared_for (const std::chrono::duration< Rep, Period > &timeout_duration)
 
template<typename Clock , typename Duration >
bool try_lock_shared_until (const std::chrono::time_point< Clock, Duration > &timeout_time)
 
- Public Member Functions inherited from yaclib::detail::fiber::SharedMutex
 SharedMutex ()=default
 
 ~SharedMutex () noexcept=default
 
 SharedMutex (const SharedMutex &)=delete
 
SharedMutexoperator= (const SharedMutex &)=delete
 
void lock ()
 
bool try_lock () noexcept
 
void unlock () noexcept
 
void lock_shared ()
 
bool try_lock_shared ()
 
void unlock_shared ()
 
native_handle_type native_handle ()
 

Additional Inherited Members

- Public Types inherited from yaclib::detail::fiber::SharedMutex
using native_handle_type = void *
 
- Protected Member Functions inherited from yaclib::detail::fiber::SharedMutex
void LockHelper ()
 
void SharedLockHelper ()
 
- Protected Attributes inherited from yaclib::detail::fiber::SharedMutex
FiberQueue _shared_queue
 
FiberQueue _exclusive_queue
 
std::uint32_t _shared_owners_count {0}
 
bool _occupied {false}
 
bool _exclusive_mode {false}
 

Detailed Description

Definition at line 9 of file shared_timed_mutex.hpp.

Member Function Documentation

◆ try_lock_for()

template<typename Rep , typename Period >
bool yaclib::detail::fiber::SharedTimedMutex::try_lock_for ( const std::chrono::duration< Rep, Period > &  timeout_duration)
inline

Definition at line 16 of file shared_timed_mutex.hpp.

References yaclib::MakeContract().

◆ try_lock_shared_for()

template<typename Rep , typename Period >
bool yaclib::detail::fiber::SharedTimedMutex::try_lock_shared_for ( const std::chrono::duration< Rep, Period > &  timeout_duration)
inline

Definition at line 26 of file shared_timed_mutex.hpp.

References yaclib::MakeContract().

◆ try_lock_shared_until()

bool yaclib::detail::fiber::SharedTimedMutex::try_lock_shared_until ( const std::chrono::time_point< Clock, Duration > &  timeout_time)
inline

Definition at line 31 of file shared_timed_mutex.hpp.

References yaclib::MakeContract().

◆ try_lock_until()

bool yaclib::detail::fiber::SharedTimedMutex::try_lock_until ( const std::chrono::time_point< Clock, Duration > &  timeout_time)
inline

Definition at line 21 of file shared_timed_mutex.hpp.

References yaclib::MakeContract().


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