...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
This header defines an exclusive lock guard.
namespace boost { namespace sync { template<typename Mutex> class lock_guard; } }
This header declares an exclusive lock guard.
namespace boost { namespace sync { struct adopt_lock_t; struct defer_lock_t; struct try_to_lock_t; constexpr defer_lock_t defer_lock; constexpr try_to_lock_t try_to_lock; constexpr adopt_lock_t adopt_lock; } }
This header defines a shared lock guard.
namespace boost { namespace sync { template<typename Mutex> class shared_lock; template<typename Mutex> void swap(shared_lock< Mutex > &, shared_lock< Mutex > &); } }
This header declares a shared lock guard.
This header defines an exclusive lock guard.
namespace boost { namespace sync { template<typename Mutex> class shared_lock_guard; } }
This header declares a shared lock guard.
This header defines an exclusive lock guard.
namespace boost { namespace sync { template<typename Mutex> class unique_lock; template<typename Mutex> void swap(unique_lock< Mutex > &, unique_lock< Mutex > &); } }
This header declares an exclusive lock guard.
This header defines a scope guard temporarily releases a lock.
namespace boost { namespace sync { template<typename Lockable> class unlock_guard; } }
This header declares a scope guard that temporarily releases the lock.
This header defines an upgradeable lock guard.
namespace boost { namespace sync { template<typename Mutex> class upgrade_lock; template<typename Mutex> void swap(upgrade_lock< Mutex > &, upgrade_lock< Mutex > &); } }
This header declares an upgrade lock guard.