diff options
Diffstat (limited to 'src/threading/mutex_auto_lock.h')
-rw-r--r-- | src/threading/mutex_auto_lock.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/threading/mutex_auto_lock.h b/src/threading/mutex_auto_lock.h index 1c39349e5..25caf7e14 100644 --- a/src/threading/mutex_auto_lock.h +++ b/src/threading/mutex_auto_lock.h @@ -28,7 +28,8 @@ DEALINGS IN THE SOFTWARE. #if __cplusplus >= 201103L #include <mutex> - using MutexAutoLock = std::lock_guard<std::mutex>; + using MutexAutoLock = std::unique_lock<std::mutex>; + using RecursiveMutexAutoLock = std::unique_lock<std::recursive_mutex>; #else #include "threading/mutex.h" @@ -44,6 +45,15 @@ private: Mutex &mutex; }; +class RecursiveMutexAutoLock +{ +public: + RecursiveMutexAutoLock(RecursiveMutex &m) : mutex(m) { mutex.lock(); } + ~RecursiveMutexAutoLock() { mutex.unlock(); } + +private: + RecursiveMutex &mutex; +}; #endif #endif |