17#ifndef ATHCONTAINERS_THREADING_H
18#define ATHCONTAINERS_THREADING_H
21#ifdef ATHCONTAINERS_NO_THREADS
36class recursive_mutex {};
42template <
class LOCKABLE>
47 lock_guard(LOCKABLE&) {}
62 operator T()
const {
return m_val; }
63 atomic& operator= (
const T& val) { m_val =
val;
return *
this; }
77#ifndef BOOST_SYSTEM_NO_DEPRECATED
78#define BOOST_SYSTEM_NO_DEPRECATED 1
92using std::recursive_mutex;
126template <
typename LOCKABLE>
175template <
class LOCKABLE>
lockable_type & m_obj
The lock being held.
strict_shared_lock(strict_shared_lock const &)
strict_shared_lock(lockable_type &obj)
Take out a shared lock on obj and remember it.
strict_shared_lock(const lockable_type &obj)
Take out a shared lock on obj and remember it.
~strict_shared_lock()
Release the held lock.
strict_shared_lock & operator=(strict_shared_lock const &)
LOCKABLE lockable_type
The underlying object type.
upgrading_lock(upgrading_lock const &)
~upgrading_lock()
Release the held lock.
upgrading_lock & operator=(upgrading_lock const &)
LOCKABLE lockable_type
The underlying object type.
void upgrade()
Convert the lock from upgrade to exclusive.
upgrading_lock(lockable_type &obj)
Take out an upgrade lock on obj and remember it.
void fence_seq_cst()
A sequentially-consistent fence.
void fence_acq_rel()
An acquire/release fence.