]> git.lizzy.rs Git - minetest.git/blobdiff - src/threading/event.cpp
Isolate irrlicht references and use a singleton (#6041)
[minetest.git] / src / threading / event.cpp
index 1c458bf1d78f068e20a8b9c225b54573dd5c6aea..885e732c8d2ba0b82ced3e99f9ffc900e203d99f 100644 (file)
@@ -24,72 +24,21 @@ DEALINGS IN THE SOFTWARE.
 */
 
 #include "threading/event.h"
-
-#if defined(_WIN32)
-       #ifndef WIN32_LEAN_AND_MEAN
-               #define WIN32_LEAN_AND_MEAN
-       #endif
-       #include <windows.h>
-#endif
-
-
-#if __cplusplus < 201103L
-Event::Event()
-{
-#ifdef _WIN32
-       event = CreateEvent(NULL, false, false, NULL);
-#else
-       pthread_cond_init(&cv, NULL);
-       pthread_mutex_init(&mutex, NULL);
-#endif
-}
-
-Event::~Event()
-{
-#ifdef _WIN32
-       CloseHandle(event);
-#else
-       pthread_cond_destroy(&cv);
-       pthread_mutex_destroy(&mutex);
-#endif
-}
-#endif
-
+#include "threading/mutex_auto_lock.h"
 
 void Event::wait()
 {
-#if __cplusplus >= 201103L
        MutexAutoLock lock(mutex);
        while (!notified) {
                cv.wait(lock);
        }
        notified = false;
-#elif defined(_WIN32)
-       WaitForSingleObject(event, INFINITE);
-#else
-       pthread_mutex_lock(&mutex);
-       while (!notified) {
-               pthread_cond_wait(&cv, &mutex);
-       }
-       notified = false;
-       pthread_mutex_unlock(&mutex);
-#endif
 }
 
 
 void Event::signal()
 {
-#if __cplusplus >= 201103L
        MutexAutoLock lock(mutex);
        notified = true;
        cv.notify_one();
-#elif defined(_WIN32)
-       SetEvent(event);
-#else
-       pthread_mutex_lock(&mutex);
-       notified = true;
-       pthread_cond_signal(&cv);
-       pthread_mutex_unlock(&mutex);
-#endif
 }
-