From 533ed51f5179a8916ab4c590d812c0750e77d385 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Mon, 9 Dec 2013 15:42:08 -0800 Subject: [PATCH] feat(util/shared_mutex): skip shared_mutex implementation if LEAN_MULTI_THREAD is not defined Signed-off-by: Leonardo de Moura --- src/util/shared_mutex.cpp | 2 ++ src/util/shared_mutex.h | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/util/shared_mutex.cpp b/src/util/shared_mutex.cpp index 2912e0c32..8f5b55c40 100644 --- a/src/util/shared_mutex.cpp +++ b/src/util/shared_mutex.cpp @@ -14,6 +14,7 @@ #include "util/shared_mutex.h" namespace lean { +#if defined(LEAN_MULTI_THREAD) shared_mutex::shared_mutex():m_rw_counter(0), m_state(0) {} shared_mutex::~shared_mutex() { lock_guard lock(m_mutex); @@ -117,4 +118,5 @@ void shared_mutex::unlock_shared() { m_gate1.notify_one(); } } +#endif } diff --git a/src/util/shared_mutex.h b/src/util/shared_mutex.h index f91d3e01a..9c98630fa 100644 --- a/src/util/shared_mutex.h +++ b/src/util/shared_mutex.h @@ -14,6 +14,7 @@ #include "util/thread.h" namespace lean { +#if defined(LEAN_MULTI_THREAD) class shared_mutex { mutex m_mutex; thread::id m_rw_owner; @@ -42,6 +43,23 @@ public: bool try_lock_shared(); void unlock_shared(); }; +#else +class shared_mutex { +public: + shared_mutex() {} + shared_mutex(shared_mutex const &) = delete; + shared_mutex(shared_mutex &&) = delete; + shared_mutex& operator=(shared_mutex const &) = delete; + shared_mutex&& operator=(shared_mutex &&) = delete; + void lock() {} + bool try_lock() { return true; } + void unlock() {} + + void lock_shared() {} + bool try_lock_shared() { return true; } + void unlock_shared() {} +}; +#endif class shared_lock { shared_mutex & m_mutex;