2
0
Эх сурвалжийг харах

Merge pull request #137 from basiliscos/no-pthread-headers

Disable inclusion pthread-heaaders via #ifdef
Denis Muratshin 6 жил өмнө
parent
commit
bf49a097a8

+ 9 - 1
oxygine/src/oxygine/core/Mutex.cpp

@@ -6,6 +6,7 @@ namespace oxygine
 {
 {
     Mutex::Mutex(bool recursive)
     Mutex::Mutex(bool recursive)
     {
     {
+#ifndef OX_NO_MT
         if (recursive)
         if (recursive)
         {
         {
             pthread_mutexattr_t   mta;
             pthread_mutexattr_t   mta;
@@ -18,20 +19,27 @@ namespace oxygine
         {
         {
             pthread_mutex_init(&_handle, 0);
             pthread_mutex_init(&_handle, 0);
         }
         }
+#endif
     }
     }
 
 
     Mutex::~Mutex()
     Mutex::~Mutex()
     {
     {
+#ifndef OX_NO_MT
         pthread_mutex_destroy(&_handle);
         pthread_mutex_destroy(&_handle);
+#endif
     }
     }
 
 
     void Mutex::lock()
     void Mutex::lock()
     {
     {
+#ifndef OX_NO_MT
         pthread_mutex_lock(&_handle);
         pthread_mutex_lock(&_handle);
+#endif
     }
     }
 
 
     void Mutex::unlock()
     void Mutex::unlock()
     {
     {
+#ifndef OX_NO_MT
         pthread_mutex_unlock(&_handle);
         pthread_mutex_unlock(&_handle);
+#endif
     }
     }
-}
+}

+ 11 - 3
oxygine/src/oxygine/core/ThreadDispatcher.cpp

@@ -19,15 +19,19 @@ namespace oxygine
 #endif
 #endif
 
 
 
 
+#ifndef OX_NO_MT
     MutexPthreadLock::MutexPthreadLock(pthread_mutex_t& m, bool lock) : _mutex(m), _locked(lock)
     MutexPthreadLock::MutexPthreadLock(pthread_mutex_t& m, bool lock) : _mutex(m), _locked(lock)
     {
     {
         if (_locked)
         if (_locked)
             pthread_mutex_lock(&_mutex);
             pthread_mutex_lock(&_mutex);
     }
     }
+#endif
 
 
     MutexPthreadLock::~MutexPthreadLock()
     MutexPthreadLock::~MutexPthreadLock()
     {
     {
+#ifndef OX_NO_MT
         pthread_mutex_unlock(&_mutex);
         pthread_mutex_unlock(&_mutex);
+#endif
     }
     }
 
 
     ThreadDispatcher::ThreadDispatcher(): _id(0), _result(0)
     ThreadDispatcher::ThreadDispatcher(): _id(0), _result(0)
@@ -192,8 +196,8 @@ namespace oxygine
 #ifndef OX_NO_MT
 #ifndef OX_NO_MT
             //pthread_cond_signal(&_cond);
             //pthread_cond_signal(&_cond);
             pthread_cond_broadcast(&_cond);
             pthread_cond_broadcast(&_cond);
-#endif
             pthread_cond_wait(&_cond, &_mutex);
             pthread_cond_wait(&_cond, &_mutex);
+#endif
         }
         }
     }
     }
 
 
@@ -206,8 +210,8 @@ namespace oxygine
             LOGDN("ThreadMessages::waiting reply... _replyingTo=%d  myid=%d", _replyingTo, id);
             LOGDN("ThreadMessages::waiting reply... _replyingTo=%d  myid=%d", _replyingTo, id);
 #ifndef OX_NO_MT
 #ifndef OX_NO_MT
             pthread_cond_signal(&_cond);
             pthread_cond_signal(&_cond);
-#endif
             pthread_cond_wait(&_cond, &_mutex);
             pthread_cond_wait(&_cond, &_mutex);
+#endif
         }
         }
         while (_replyingTo != id);
         while (_replyingTo != id);
 
 
@@ -364,11 +368,15 @@ namespace oxygine
 
 
     std::vector<ThreadDispatcher::message>& ThreadDispatcher::lockMessages()
     std::vector<ThreadDispatcher::message>& ThreadDispatcher::lockMessages()
     {
     {
+#ifndef OX_NO_MT
         pthread_mutex_lock(&_mutex);
         pthread_mutex_lock(&_mutex);
+#endif
         return _events;
         return _events;
     }
     }
     void ThreadDispatcher::unlockMessages()
     void ThreadDispatcher::unlockMessages()
     {
     {
+#ifndef OX_NO_MT
         pthread_mutex_unlock(&_mutex);
         pthread_mutex_unlock(&_mutex);
+#endif
     }
     }
-}
+}

+ 5 - 1
oxygine/src/oxygine/core/ThreadDispatcher.h

@@ -15,11 +15,15 @@ namespace oxygine
     class MutexPthreadLock
     class MutexPthreadLock
     {
     {
     public:
     public:
+#ifndef OX_NO_MT
         MutexPthreadLock(pthread_mutex_t& m, bool lock = true);
         MutexPthreadLock(pthread_mutex_t& m, bool lock = true);
+#endif
         ~MutexPthreadLock();
         ~MutexPthreadLock();
 
 
     protected:
     protected:
+#ifndef OX_NO_MT
         pthread_mutex_t& _mutex;
         pthread_mutex_t& _mutex;
+#endif
         bool _locked;
         bool _locked;
     };
     };
     /*
     /*
@@ -144,4 +148,4 @@ namespace oxygine
 
 
 
 
     typedef  ThreadDispatcher ThreadMessages;
     typedef  ThreadDispatcher ThreadMessages;
-}
+}