diff options
author | Benoit Germain <bnt.germain@gmail.com> | 2022-02-07 08:56:39 +0100 |
---|---|---|
committer | Benoit Germain <bnt.germain@gmail.com> | 2022-02-07 08:56:39 +0100 |
commit | 621fb024b5f887ef9e81e2f28bf087386f5300e1 (patch) | |
tree | 3ed681e2db07a0516904b2cda4e7144c714d19e0 /src/threading.h | |
parent | 00c84df3adc0b295ef20bc35bc8df9632e3b93e7 (diff) | |
download | lanes-621fb024b5f887ef9e81e2f28bf087386f5300e1.tar.gz lanes-621fb024b5f887ef9e81e2f28bf087386f5300e1.tar.bz2 lanes-621fb024b5f887ef9e81e2f28bf087386f5300e1.zip |
Changed all indentations to all whitespaces
Tabs mess up alignment of stack contents comments, so I'm done with them.
Diffstat (limited to 'src/threading.h')
-rw-r--r-- | src/threading.h | 67 |
1 files changed, 32 insertions, 35 deletions
diff --git a/src/threading.h b/src/threading.h index 778b6a0..1224e08 100644 --- a/src/threading.h +++ b/src/threading.h | |||
@@ -66,41 +66,41 @@ enum e_status { PENDING, RUNNING, WAITING, DONE, ERROR_ST, CANCELLED }; | |||
66 | // needed for use with the SIGNAL system. | 66 | // needed for use with the SIGNAL system. |
67 | // | 67 | // |
68 | 68 | ||
69 | #if _WIN32_WINNT < 0x0600 // CONDITION_VARIABLE aren't available, use a signal | 69 | #if _WIN32_WINNT < 0x0600 // CONDITION_VARIABLE aren't available, use a signal |
70 | 70 | ||
71 | typedef struct | 71 | typedef struct |
72 | { | 72 | { |
73 | CRITICAL_SECTION signalCS; | 73 | CRITICAL_SECTION signalCS; |
74 | CRITICAL_SECTION countCS; | 74 | CRITICAL_SECTION countCS; |
75 | HANDLE waitEvent; | 75 | HANDLE waitEvent; |
76 | HANDLE waitDoneEvent; | 76 | HANDLE waitDoneEvent; |
77 | LONG waitersCount; | 77 | LONG waitersCount; |
78 | } SIGNAL_T; | 78 | } SIGNAL_T; |
79 | 79 | ||
80 | 80 | ||
81 | #define MUTEX_T HANDLE | 81 | #define MUTEX_T HANDLE |
82 | void MUTEX_INIT( MUTEX_T* ref); | 82 | void MUTEX_INIT( MUTEX_T* ref); |
83 | void MUTEX_FREE( MUTEX_T* ref); | 83 | void MUTEX_FREE( MUTEX_T* ref); |
84 | void MUTEX_LOCK( MUTEX_T* ref); | 84 | void MUTEX_LOCK( MUTEX_T* ref); |
85 | void MUTEX_UNLOCK( MUTEX_T* ref); | 85 | void MUTEX_UNLOCK( MUTEX_T* ref); |
86 | 86 | ||
87 | #else // CONDITION_VARIABLE are available, use them | 87 | #else // CONDITION_VARIABLE are available, use them |
88 | 88 | ||
89 | #define SIGNAL_T CONDITION_VARIABLE | 89 | #define SIGNAL_T CONDITION_VARIABLE |
90 | #define MUTEX_T CRITICAL_SECTION | 90 | #define MUTEX_T CRITICAL_SECTION |
91 | #define MUTEX_INIT( ref) InitializeCriticalSection( ref) | 91 | #define MUTEX_INIT( ref) InitializeCriticalSection( ref) |
92 | #define MUTEX_FREE( ref) DeleteCriticalSection( ref) | 92 | #define MUTEX_FREE( ref) DeleteCriticalSection( ref) |
93 | #define MUTEX_LOCK( ref) EnterCriticalSection( ref) | 93 | #define MUTEX_LOCK( ref) EnterCriticalSection( ref) |
94 | #define MUTEX_UNLOCK( ref) LeaveCriticalSection( ref) | 94 | #define MUTEX_UNLOCK( ref) LeaveCriticalSection( ref) |
95 | 95 | ||
96 | #endif // CONDITION_VARIABLE are available | 96 | #endif // CONDITION_VARIABLE are available |
97 | 97 | ||
98 | #define MUTEX_RECURSIVE_INIT(ref) MUTEX_INIT(ref) /* always recursive in Win32 */ | 98 | #define MUTEX_RECURSIVE_INIT(ref) MUTEX_INIT(ref) /* always recursive in Win32 */ |
99 | 99 | ||
100 | typedef unsigned int THREAD_RETURN_T; | 100 | typedef unsigned int THREAD_RETURN_T; |
101 | 101 | ||
102 | #define YIELD() Sleep(0) | 102 | #define YIELD() Sleep(0) |
103 | #define THREAD_CALLCONV __stdcall | 103 | #define THREAD_CALLCONV __stdcall |
104 | #else // THREADAPI == THREADAPI_PTHREAD | 104 | #else // THREADAPI == THREADAPI_PTHREAD |
105 | // PThread (Linux, OS X, ...) | 105 | // PThread (Linux, OS X, ...) |
106 | 106 | ||
@@ -143,13 +143,10 @@ enum e_status { PENDING, RUNNING, WAITING, DONE, ERROR_ST, CANCELLED }; | |||
143 | // | 143 | // |
144 | #if defined( PLATFORM_OSX) | 144 | #if defined( PLATFORM_OSX) |
145 | #define YIELD() pthread_yield_np() | 145 | #define YIELD() pthread_yield_np() |
146 | #elif defined( PLATFORM_WIN32) || defined( PLATFORM_POCKETPC) || defined(__ANDROID__) || defined(__NetBSD__) // no PTHREAD for PLATFORM_XBOX | ||
147 | // for some reason win32-pthread doesn't have pthread_yield(), but sched_yield() | ||
148 | #define YIELD() sched_yield() | ||
149 | #else | 146 | #else |
150 | #define YIELD() sched_yield() | 147 | #define YIELD() sched_yield() |
151 | #endif | 148 | #endif |
152 | #define THREAD_CALLCONV | 149 | #define THREAD_CALLCONV |
153 | #endif //THREADAPI == THREADAPI_PTHREAD | 150 | #endif //THREADAPI == THREADAPI_PTHREAD |
154 | 151 | ||
155 | void SIGNAL_INIT( SIGNAL_T *ref ); | 152 | void SIGNAL_INIT( SIGNAL_T *ref ); |
@@ -174,9 +171,9 @@ bool_t SIGNAL_WAIT( SIGNAL_T *ref, MUTEX_T *mu, time_d timeout ); | |||
174 | 171 | ||
175 | #if THREADAPI == THREADAPI_WINDOWS | 172 | #if THREADAPI == THREADAPI_WINDOWS |
176 | 173 | ||
177 | typedef HANDLE THREAD_T; | 174 | typedef HANDLE THREAD_T; |
178 | # define THREAD_ISNULL( _h) (_h == 0) | 175 | # define THREAD_ISNULL( _h) (_h == 0) |
179 | void THREAD_CREATE( THREAD_T* ref, THREAD_RETURN_T (__stdcall *func)( void*), void* data, int prio /* -3..+3 */); | 176 | void THREAD_CREATE( THREAD_T* ref, THREAD_RETURN_T (__stdcall *func)( void*), void* data, int prio /* -3..+3 */); |
180 | 177 | ||
181 | # define THREAD_PRIO_MIN (-3) | 178 | # define THREAD_PRIO_MIN (-3) |
182 | # define THREAD_PRIO_MAX (+3) | 179 | # define THREAD_PRIO_MAX (+3) |
@@ -186,9 +183,9 @@ bool_t SIGNAL_WAIT( SIGNAL_T *ref, MUTEX_T *mu, time_d timeout ); | |||
186 | 183 | ||
187 | #else // THREADAPI == THREADAPI_PTHREAD | 184 | #else // THREADAPI == THREADAPI_PTHREAD |
188 | 185 | ||
189 | /* Platforms that have a timed 'pthread_join()' can get away with a simpler | 186 | /* Platforms that have a timed 'pthread_join()' can get away with a simpler |
190 | * implementation. Others will use a condition variable. | 187 | * implementation. Others will use a condition variable. |
191 | */ | 188 | */ |
192 | # if defined __WINPTHREADS_VERSION | 189 | # if defined __WINPTHREADS_VERSION |
193 | //# define USE_PTHREAD_TIMEDJOIN | 190 | //# define USE_PTHREAD_TIMEDJOIN |
194 | # endif // __WINPTHREADS_VERSION | 191 | # endif // __WINPTHREADS_VERSION |
@@ -202,13 +199,13 @@ bool_t SIGNAL_WAIT( SIGNAL_T *ref, MUTEX_T *mu, time_d timeout ); | |||
202 | # endif | 199 | # endif |
203 | # endif | 200 | # endif |
204 | 201 | ||
205 | typedef pthread_t THREAD_T; | 202 | typedef pthread_t THREAD_T; |
206 | # define THREAD_ISNULL( _h) 0 // pthread_t may be a structure: never 'null' by itself | 203 | # define THREAD_ISNULL( _h) 0 // pthread_t may be a structure: never 'null' by itself |
207 | 204 | ||
208 | void THREAD_CREATE( THREAD_T* ref, THREAD_RETURN_T (*func)( void*), void* data, int prio /* -3..+3 */); | 205 | void THREAD_CREATE( THREAD_T* ref, THREAD_RETURN_T (*func)( void*), void* data, int prio /* -3..+3 */); |
209 | 206 | ||
210 | # if defined(PLATFORM_LINUX) | 207 | # if defined(PLATFORM_LINUX) |
211 | extern volatile bool_t sudo; | 208 | extern volatile bool_t sudo; |
212 | # ifdef LINUX_SCHED_RR | 209 | # ifdef LINUX_SCHED_RR |
213 | # define THREAD_PRIO_MIN (sudo ? -3 : 0) | 210 | # define THREAD_PRIO_MIN (sudo ? -3 : 0) |
214 | # else | 211 | # else |