libjmmcg
release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
|
Atomically count the amount of work that there is to do, and provide access to the lock on the containing collection. More...
#include <thread_safe_adaptors.hpp>
Public Types | |
typedef api_lock_traits< platform_api, sequential_mode >::anon_event_type | atomic_t |
typedef Lk | locker_type |
typedef locker_type::lock_traits | lock_traits |
Public Member Functions | |
constexpr | no_signalling () noexcept(true) FORCE_INLINE |
no_signalling (atomic_t &ev) noexcept(true) FORCE_INLINE | |
constexpr | no_signalling (no_signalling const &s) noexcept(true) FORCE_INLINE |
atomic_t &__fastcall | have_work () noexcept(true) FORCE_INLINE |
locker_type &__fastcall | locker () const noexcept(true) FORCE_INLINE |
locker_type &__fastcall | locker () noexcept(true) |
void __fastcall | add () noexcept(true) FORCE_INLINE |
void __fastcall | add (typename atomic_t::count_type const c) noexcept(true) FORCE_INLINE |
atomic_t::atomic_state_type __fastcall | remove () noexcept(true) FORCE_INLINE |
void __fastcall | remove (typename atomic_t::count_type const c) noexcept(true) FORCE_INLINE |
atomic_t::atomic_state_type __fastcall | try_remove () noexcept(true) FORCE_INLINE |
Static Public Member Functions | |
static constexpr void | clear () noexcept(true) FORCE_INLINE |
static constexpr atomic_t::count_type __fastcall | count () noexcept(true) FORCE_INLINE |
Static Public Attributes | |
static constexpr generic_traits::memory_access_modes | memory_access_mode |
Atomically count the amount of work that there is to do, and provide access to the lock on the containing collection.
This class adds a constant-time counter to the safe_colln or queue or funky_queue. This uses standard locks.
Definition at line 35 of file thread_safe_adaptors.hpp.
typedef api_lock_traits<platform_api, sequential_mode>::anon_event_type jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::no_signalling< Lk >::atomic_t |
Definition at line 37 of file thread_safe_adaptors.hpp.
typedef locker_type::lock_traits jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::no_signalling< Lk >::lock_traits |
Definition at line 39 of file thread_safe_adaptors.hpp.
typedef Lk jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::no_signalling< Lk >::locker_type |
Definition at line 38 of file thread_safe_adaptors.hpp.
|
inlineconstexprnoexcept |
Definition at line 51 of file thread_safe_adaptors.hpp.
|
inlineexplicitnoexcept |
Definition at line 54 of file thread_safe_adaptors.hpp.
|
inlineconstexprnoexcept |
Definition at line 58 of file thread_safe_adaptors.hpp.
|
inlinenoexcept |
Definition at line 75 of file thread_safe_adaptors.hpp.
References jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::no_locking::anon_event::set().
|
inlinenoexcept |
Definition at line 80 of file thread_safe_adaptors.hpp.
References jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::no_locking::anon_event::set().
|
inlinestaticconstexprnoexcept |
Definition at line 105 of file thread_safe_adaptors.hpp.
|
inlinestaticconstexprnoexcept |
Definition at line 107 of file thread_safe_adaptors.hpp.
|
inlinenoexcept |
Definition at line 62 of file thread_safe_adaptors.hpp.
|
inlinenoexcept |
Definition at line 66 of file thread_safe_adaptors.hpp.
|
inlinenoexcept |
Definition at line 70 of file thread_safe_adaptors.hpp.
|
inlinenoexcept |
Definition at line 87 of file thread_safe_adaptors.hpp.
References jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::api_lock_traits< platform_api, sequential_mode >::atom_unset, and jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::no_locking::anon_event::lock().
|
inlinenoexcept |
Definition at line 94 of file thread_safe_adaptors.hpp.
References jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::no_locking::anon_event::lock().
|
inlinenoexcept |
Definition at line 101 of file thread_safe_adaptors.hpp.
|
staticconstexpr |
To assist in allowing compile-time computation of the algorithmic order of the threading model.
Definition at line 44 of file thread_safe_adaptors.hpp.