libjmmcg
release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
|
#include <posix_locking.hpp>
Classes | |
class | attr |
Public Types | |
typedef lock::lockable< api_lock_traits< ppd::generic_traits::api_type::posix_pthreads, heavyweight_threading > > | base_t |
typedef base_t::lock_traits | lock_traits |
typedef base_t::atomic_state_type | atomic_state_type |
typedef lock_traits::exception_type | exception_type |
typedef lock::in_process< anon_mutex > | lock_type |
typedef lock_type | read_lock_type |
typedef lock_type | write_lock_type |
typedef lock::in_process_unlockable< anon_mutex > | unlockable_type |
typedef unlockable_type | read_unlockable_type |
typedef unlockable_type | write_unlockable_type |
using | api_mutex_type = lock_traits::api_mutex_type |
![]() | |
using | lock_traits = api_lock_traits< ppd::generic_traits::api_type::posix_pthreads, heavyweight_threading > |
typedef lock_traits::atomic_state_type | atomic_state_type |
typedef lock_traits::timeout_type | timeout_type |
Public Member Functions | |
__stdcall | anon_mutex () noexcept(false) FORCE_INLINE |
anon_mutex (anon_mutex const &)=delete | |
virtual __stdcall | ~anon_mutex () noexcept(true) FORCE_INLINE |
operator api_mutex_type * () noexcept(true) FORCE_INLINE | |
atomic_state_type __fastcall | lock (const timeout_type timeout) noexcept(true) override FORCE_INLINE final |
atomic_state_type __fastcall | lock () noexcept(true) override FORCE_INLINE final |
atomic_state_type __fastcall | unlock () noexcept(true) override FORCE_INLINE final |
void | decay () noexcept(true) FORCE_INLINE |
![]() | |
virtual atomic_state_type __fastcall | try_lock () noexcept(true) FORCE_INLINE |
Static Public Attributes | |
static constexpr generic_traits::memory_access_modes | memory_access_mode =generic_traits::memory_access_modes::erew_memory_access |
Protected Member Functions | |
__stdcall | anon_mutex (const int shared, const int err_chk=PTHREAD_MUTEX_ERRORCHECK) noexcept(false) FORCE_INLINE |
Friends | |
class | mutex |
Note that this is not the most efficient mutex, but it is safer than default-created mutexes, as it uses PTHREAD_MUTEX_ERRORCHECK semantics [1].
Definition at line 57 of file posix_locking.hpp.
using jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pthreads::anon_mutex::api_mutex_type = lock_traits::api_mutex_type |
Definition at line 69 of file posix_locking.hpp.
typedef base_t::atomic_state_type jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pthreads::anon_mutex::atomic_state_type |
Definition at line 61 of file posix_locking.hpp.
typedef lock::lockable<api_lock_traits<ppd::generic_traits::api_type::posix_pthreads, heavyweight_threading> > jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pthreads::anon_mutex::base_t |
Definition at line 59 of file posix_locking.hpp.
typedef lock_traits::exception_type jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pthreads::anon_mutex::exception_type |
Definition at line 62 of file posix_locking.hpp.
Definition at line 60 of file posix_locking.hpp.
typedef lock::in_process<anon_mutex> jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pthreads::anon_mutex::lock_type |
Definition at line 63 of file posix_locking.hpp.
Definition at line 64 of file posix_locking.hpp.
typedef unlockable_type jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pthreads::anon_mutex::read_unlockable_type |
Definition at line 67 of file posix_locking.hpp.
typedef lock::in_process_unlockable<anon_mutex> jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pthreads::anon_mutex::unlockable_type |
Definition at line 66 of file posix_locking.hpp.
Definition at line 65 of file posix_locking.hpp.
typedef unlockable_type jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pthreads::anon_mutex::write_unlockable_type |
Definition at line 68 of file posix_locking.hpp.
|
inlinenoexcept |
Definition at line 106 of file posix_locking_impl.hpp.
References jmmcg::LIBJMMCG_VER_NAMESPACE::info::function::add_arg(), and jmmcg::LIBJMMCG_VER_NAMESPACE::info::function::function().
|
delete |
|
inlinevirtualnoexcept |
Definition at line 117 of file posix_locking_impl.hpp.
|
inlineexplicitprotectednoexcept |
Definition at line 152 of file posix_locking_impl.hpp.
References jmmcg::LIBJMMCG_VER_NAMESPACE::info::function::function().
Referenced by jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pthreads::mutex::mutex(), jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pthreads::recursive_anon_mutex::recursive_anon_mutex(), and jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pthreads::recursive_mutex::recursive_mutex().
|
inlinenoexcept |
Definition at line 148 of file posix_locking_impl.hpp.
|
inlinefinaloverridevirtualnoexcept |
Definition at line 128 of file posix_locking_impl.hpp.
Referenced by lock().
|
inlinefinaloverridevirtualnoexcept |
Definition at line 133 of file posix_locking_impl.hpp.
References lock().
|
inlinenoexcept |
Definition at line 123 of file posix_locking_impl.hpp.
|
inlinefinaloverridevirtualnoexcept |
Definition at line 142 of file posix_locking_impl.hpp.
|
friend |
Definition at line 89 of file posix_locking.hpp.
|
staticconstexpr |
To assist in allowing compile-time computation of the algorithmic order of the threading model.
Definition at line 73 of file posix_locking.hpp.