]> git.saurik.com Git - wxWidgets.git/blobdiff - src/unix/threadpsx.cpp
compilation fix for non-threaded compilation (threads are still broken
[wxWidgets.git] / src / unix / threadpsx.cpp
index 34f3cd81b4224fe665a134d950b76a57c69ba748..5bbb54a77826457f2ea1dc0bfbd0491a617e2add 100644 (file)
@@ -725,7 +725,7 @@ void wxThreadInternal::Wait()
         wxMutexGuiLeave();
 
     bool isDetached = m_isDetached;
-    long id = GetId();
+    long id = (long)GetId();
     wxLogTrace(TRACE_THREADS, _T("Starting to wait for thread %ld to exit."),
                id);
 
@@ -749,7 +749,7 @@ void wxThreadInternal::Wait()
             //       we're cancelled inside pthread_join(), things will almost
             //       certainly break - but if we disable the cancellation, we
             //       might deadlock
-            if ( pthread_join(id, &m_exitcode) != 0 )
+            if ( pthread_join((pthread_t)id, &m_exitcode) != 0 )
             {
                 wxLogError(_("Failed to join a thread, potential memory leak "
                              "detected - please restart the program"));
@@ -933,8 +933,18 @@ wxThreadError wxThread::Create()
         wxLogError(_("Cannot retrieve thread scheduling policy."));
     }
 
-    int min_prio = sched_get_priority_min(policy),
-        max_prio = sched_get_priority_max(policy),
+#ifdef __VMS__
+   /* the pthread.h contains too many spaces. This is a work-around */
+# undef sched_get_priority_max
+#undef sched_get_priority_min
+#define sched_get_priority_max(_pol_) \
+     (_pol_ == SCHED_OTHER ? PRI_FG_MAX_NP : PRI_FIFO_MAX)
+#define sched_get_priority_min(_pol_) \
+     (_pol_ == SCHED_OTHER ? PRI_FG_MIN_NP : PRI_FIFO_MIN)
+#endif
+   
+    int max_prio = sched_get_priority_max(policy),
+        min_prio = sched_get_priority_min(policy),
         prio = m_internal->GetPriority();
 
     if ( min_prio == -1 || max_prio == -1 )