aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/threading.h19
1 files changed, 6 insertions, 13 deletions
diff --git a/src/threading.h b/src/threading.h
index 4a83229..2bf48e5 100644
--- a/src/threading.h
+++ b/src/threading.h
@@ -32,13 +32,6 @@ typedef int bool_t;
32 32
33typedef unsigned int uint_t; 33typedef unsigned int uint_t;
34 34
35#if defined(PLATFORM_WIN32) && defined(__GNUC__)
36/* MinGW with MSVCR80.DLL */
37/* Do this BEFORE including time.h so that it is declaring _mktime32()
38 * as it would have declared mktime().
39 */
40# define mktime _mktime32
41#endif
42#include <time.h> 35#include <time.h>
43 36
44/* Note: ERROR is a defined entity on Win32 37/* Note: ERROR is a defined entity on Win32
@@ -71,7 +64,7 @@ enum e_status { PENDING, RUNNING, WAITING, DONE, ERROR_ST, CANCELLED };
71 typedef unsigned THREAD_RETURN_T; 64 typedef unsigned THREAD_RETURN_T;
72 65
73 #define SIGNAL_T HANDLE 66 #define SIGNAL_T HANDLE
74 67
75 #define YIELD() Sleep(0) 68 #define YIELD() Sleep(0)
76#else 69#else
77 // PThread (Linux, OS X, ...) 70 // PThread (Linux, OS X, ...)
@@ -101,7 +94,7 @@ enum e_status { PENDING, RUNNING, WAITING, DONE, ERROR_ST, CANCELLED };
101 typedef pthread_cond_t SIGNAL_T; 94 typedef pthread_cond_t SIGNAL_T;
102 95
103 void SIGNAL_ONE( SIGNAL_T *ref ); 96 void SIGNAL_ONE( SIGNAL_T *ref );
104 97
105 // Yield is non-portable: 98 // Yield is non-portable:
106 // 99 //
107 // OS X 10.4.8/9 has pthread_yield_np() 100 // OS X 10.4.8/9 has pthread_yield_np()
@@ -143,7 +136,7 @@ bool_t SIGNAL_WAIT( SIGNAL_T *ref, MUTEX_T *mu, time_d timeout );
143 void THREAD_CREATE( THREAD_T *ref, 136 void THREAD_CREATE( THREAD_T *ref,
144 THREAD_RETURN_T (__stdcall *func)( void * ), 137 THREAD_RETURN_T (__stdcall *func)( void * ),
145 void *data, int prio /* -3..+3 */ ); 138 void *data, int prio /* -3..+3 */ );
146 139
147# define THREAD_PRIO_MIN (-3) 140# define THREAD_PRIO_MIN (-3)
148# define THREAD_PRIO_MAX (+3) 141# define THREAD_PRIO_MAX (+3)
149 142
@@ -162,10 +155,10 @@ bool_t SIGNAL_WAIT( SIGNAL_T *ref, MUTEX_T *mu, time_d timeout );
162 155
163 typedef pthread_t THREAD_T; 156 typedef pthread_t THREAD_T;
164 157
165 void THREAD_CREATE( THREAD_T *ref, 158 void THREAD_CREATE( THREAD_T *ref,
166 THREAD_RETURN_T (*func)( void * ), 159 THREAD_RETURN_T (*func)( void * ),
167 void *data, int prio /* -2..+2 */ ); 160 void *data, int prio /* -2..+2 */ );
168 161
169# if defined(PLATFORM_LINUX) 162# if defined(PLATFORM_LINUX)
170 volatile bool_t sudo; 163 volatile bool_t sudo;
171# ifdef LINUX_SCHED_RR 164# ifdef LINUX_SCHED_RR
@@ -180,7 +173,7 @@ bool_t SIGNAL_WAIT( SIGNAL_T *ref, MUTEX_T *mu, time_d timeout );
180# endif 173# endif
181#endif 174#endif
182 175
183/* 176/*
184* Win32 and PTHREAD_TIMEDJOIN allow waiting for a thread with a timeout. 177* Win32 and PTHREAD_TIMEDJOIN allow waiting for a thread with a timeout.
185* Posix without PTHREAD_TIMEDJOIN needs to use a condition variable approach. 178* Posix without PTHREAD_TIMEDJOIN needs to use a condition variable approach.
186*/ 179*/