The jss::generic_lock_guard
class provides
a basic lock ownership wrapper that will lock any type of mutex that meets
the Lockable
requirements.
The specified mutex is locked in the constructor and unlocked in the destructor.
This provides a simple means of locking a mutex for a block of code and
ensuring that the mutex is unlocked when the block is left, whether that
is by running off the end, by the use of a control flow statement such
as break
or return
, or by throwing an exception.
Instances of jss::generic_lock_guard
are neither
MoveConstructible
, CopyConstructible
or CopyAssignable
.
class generic_lock_guard { public: template<typename Mutex> explicit generic_lock_guard(Mutex& m); template<typename Mutex> generic_lock_guard(Mutex& m, adopt_lock_t); ~generic_lock_guard(); generic_lock_guard(generic_lock_guard const& ) = delete; generic_lock_guard& operator=( generic_lock_guard const& ) = delete; };
#include <jss/guards.hpp>