...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::log::sources::single_thread_model — Single thread locking model.
// In header: <boost/log/sources/threading_models.hpp> struct single_thread_model { // public member functions void lock_shared() const noexcept; bool try_lock_shared() const noexcept; template<typename TimeT> bool timed_lock_shared(TimeT const &) const noexcept; void unlock_shared() const noexcept; void lock() const noexcept; bool try_lock() const noexcept; template<typename TimeT> bool timed_lock(TimeT const &) const noexcept; void unlock() const noexcept; void lock_upgrade() const noexcept; bool try_lock_upgrade() const noexcept; template<typename TimeT> bool timed_lock_upgrade(TimeT const &) const noexcept; void unlock_upgrade() const noexcept; void unlock_upgrade_and_lock() const noexcept; void unlock_and_lock_upgrade() const noexcept; void unlock_and_lock_shared() const noexcept; void unlock_upgrade_and_lock_shared() const noexcept; void swap(single_thread_model &) noexcept; };
single_thread_model
public member functionsvoid lock_shared() const noexcept;
bool try_lock_shared() const noexcept;
template<typename TimeT> bool timed_lock_shared(TimeT const &) const noexcept;
void unlock_shared() const noexcept;
void lock() const noexcept;
bool try_lock() const noexcept;
template<typename TimeT> bool timed_lock(TimeT const &) const noexcept;
void unlock() const noexcept;
void lock_upgrade() const noexcept;
bool try_lock_upgrade() const noexcept;
template<typename TimeT> bool timed_lock_upgrade(TimeT const &) const noexcept;
void unlock_upgrade() const noexcept;
void unlock_upgrade_and_lock() const noexcept;
void unlock_and_lock_upgrade() const noexcept;
void unlock_and_lock_shared() const noexcept;
void unlock_upgrade_and_lock_shared() const noexcept;
void swap(single_thread_model &) noexcept;