aboutsummaryrefslogtreecommitdiff
path: root/src/threading/mutex.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/threading/mutex.h')
-rw-r--r--src/threading/mutex.h14
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