platform: fixed initial value of m_thread in CThread
authorLars Op den Kamp <lars@opdenkamp.eu>
Tue, 15 May 2012 10:04:43 +0000 (12:04 +0200)
committerLars Op den Kamp <lars@opdenkamp.eu>
Tue, 15 May 2012 10:04:43 +0000 (12:04 +0200)
src/lib/platform/posix/os-threads.h
src/lib/platform/threads/threads.h
src/lib/platform/windows/os-threads.h

index 89f822b0dec300a89aee85d2f55e62871fac9080..e5f935cf64ac9d24ff0c7637b53725755671c417 100644 (file)
@@ -64,6 +64,7 @@ namespace PLATFORM
   }
 
   typedef pthread_t thread_t;
+  #define INVALID_THREAD_VALUE 0
 
   #define ThreadsCreate(thread, func, arg)         (pthread_create(&thread, NULL, (void *(*) (void *))func, (void *)arg) == 0)
   #define ThreadsWait(thread, retval)              (thread ? pthread_join(thread, retval) == 0 : true)
index 1f62dcf0c1247511b24d6d7830416699a3a4c5d0..36477708d4750e6c2e035ca739d067f06cdff26a 100644 (file)
@@ -42,13 +42,13 @@ namespace PLATFORM
         m_bStop(false),
         m_bRunning(false),
         m_bStopped(false),
-        m_thread(NULL) {}
+        m_thread(INVALID_THREAD_VALUE) {}
 
     virtual ~CThread(void)
     {
       StopThread(0);
       void *retVal = NULL;
-      if (m_thread)
+      if (m_thread != INVALID_THREAD_VALUE)
         ThreadsWait(m_thread, &retVal);
     }
 
index 3714c16711950919edd768708e5d2cee4fa48594..ff773f094cab69aca2374e9b5c30a2a0200db277 100644 (file)
@@ -34,6 +34,7 @@
 namespace PLATFORM
 {
   #define thread_t                                 HANDLE
+  #define INVALID_THREAD_VALUE                     INVALID_HANDLE
   #define ThreadsWait(thread, retVal)              (::WaitForSingleObject(thread, INFINITE) < 0)
   #define ThreadsCreate(thread, func, arg)         ((thread = ::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)func, arg, 0, NULL)) == NULL ? false : true)