]> git.lizzy.rs Git - minetest.git/blobdiff - src/threading/event.h
Fix synchronization issue at thread start
[minetest.git] / src / threading / event.h
index ea087e53f4ceb16452cd2e1c017efe42e6ff7990..26cb8997aa57831c4e745282e3fade3bfe43685d 100644 (file)
@@ -26,13 +26,12 @@ DEALINGS IN THE SOFTWARE.
 #ifndef THREADING_EVENT_H
 #define THREADING_EVENT_H
 
-#if __cplusplus >= 201103L
+#include "threads.h"
+
+#if USE_CPP11_MUTEX
        #include <condition_variable>
        #include "threading/mutex.h"
-#elif defined(_WIN32)
-       #include <windef.h>
-#else
-       #include <pthread.h>
+       #include "threading/mutex_auto_lock.h"
 #endif
 
 
@@ -44,19 +43,19 @@ DEALINGS IN THE SOFTWARE.
  */
 class Event {
 public:
-#if __cplusplus < 201103L
        Event();
+#ifndef USE_CPP11_MUTEX
        ~Event();
 #endif
        void wait();
        void signal();
 
 private:
-#if __cplusplus >= 201103L
+#if USE_CPP11_MUTEX
        std::condition_variable cv;
        Mutex mutex;
        bool notified;
-#elif defined(_WIN32)
+#elif USE_WIN_MUTEX
        HANDLE event;
 #else
        pthread_cond_t cv;
@@ -66,4 +65,3 @@ class Event {
 };
 
 #endif
-