Template Class ConditionalLockGuard

Class Documentation

template<typename Mutex>
class ConditionalLockGuard

Conditional lock guard.

Locks a mutex if a condition is true, and unlocks it when destroyed.

Template Parameters:

Mutex – The mutex type

Public Functions

inline ConditionalLockGuard(Mutex &mtx, bool should_lock)

Construct a new Conditional Lock Guard object.

Lock the mutex if should_lock is true.

Parameters:
  • mtx – The mutex to lock

  • should_lock – Whether to lock the mutex

inline ~ConditionalLockGuard()

Destroy the Conditional Lock Guard object.

Unlock the mutex if it was locked

ConditionalLockGuard(const ConditionalLockGuard&) = delete
ConditionalLockGuard &operator=(const ConditionalLockGuard&) = delete
ConditionalLockGuard(ConditionalLockGuard&&) = delete
ConditionalLockGuard &operator=(ConditionalLockGuard&&) = delete