diff options
Diffstat (limited to 'src/threading/mutex.h')
-rw-r--r-- | src/threading/mutex.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/threading/mutex.h b/src/threading/mutex.h index 40b10a2ea..dadbd050c 100644 --- a/src/threading/mutex.h +++ b/src/threading/mutex.h @@ -30,6 +30,7 @@ DEALINGS IN THE SOFTWARE. #if __cplusplus >= 201103L && !defined(_WIN32) #include <mutex> using Mutex = std::mutex; + using RecursiveMutex = std::recursive_mutex; #else #ifdef _WIN32 @@ -49,11 +50,14 @@ DEALINGS IN THE SOFTWARE. class Mutex { public: - Mutex(bool recursive=false); + Mutex(); ~Mutex(); void lock(); void unlock(); +protected: + Mutex(bool recursive); + void init_mutex(bool recursive); private: #ifdef _WIN32 CRITICAL_SECTION mutex; @@ -64,6 +68,14 @@ private: DISABLE_CLASS_COPY(Mutex); }; +class RecursiveMutex : public Mutex +{ +public: + RecursiveMutex(); + + DISABLE_CLASS_COPY(RecursiveMutex); +}; + #endif // C++11 #endif |