Showing the changes to src/core/util_thread.cpp (1 of 16 files). Show all
Unified · Split
| @@ -67,7 +67,7 @@ XThread::XThread( ) · 66 unmodified lines | |||
| 67 | //----------------------------------------------------------------------------- | 67 | //----------------------------------------------------------------------------- |
| 68 | XThread::~XThread( ) | 68 | XThread::~XThread( ) |
| 69 | { | 69 | { |
| 70 | #if defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) | 70 | #if defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_OPENBSD__) |
| 71 | // can't self-terminate (much like the Terminator) | 71 | // can't self-terminate (much like the Terminator) |
| 72 | bool is_self_thread = (thread == pthread_self()); | 72 | bool is_self_thread = (thread == pthread_self()); |
| 73 | #elif defined(__PLATFORM_WIN32__) | 73 | #elif defined(__PLATFORM_WIN32__) |
| @@ -79,7 +79,7 @@ XThread::~XThread( ) · 5 unmodified lines | |||
| 79 | if( thread != 0 && !is_self_thread ) | 79 | if( thread != 0 && !is_self_thread ) |
| 80 | { | 80 | { |
| 81 | // TODO: find an alternative for Android? | 81 | // TODO: find an alternative for Android? |
| 82 | #if defined(__PLATFORM_MACOSX__) || ( defined(__PLATFORM_LINUX__) && !defined(__ANDROID__) ) || defined(__WINDOWS_PTHREAD__) | 82 | #if defined(__PLATFORM_MACOSX__) || ( defined(__PLATFORM_LINUX__) && !defined(__ANDROID__) ) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_OPENBSD__) |
| 83 | // log | 83 | // log |
| 84 | EM_log( CK_LOG_FINER, "cancelling XThread: %u on thread: %u", (t_CKUINT)thread, (t_CKUINT)pthread_self() ); | 84 | EM_log( CK_LOG_FINER, "cancelling XThread: %u on thread: %u", (t_CKUINT)thread, (t_CKUINT)pthread_self() ); |
| 85 | pthread_cancel(thread); | 85 | pthread_cancel(thread); |
| @@ -103,7 +103,7 @@ bool XThread::start( THREAD_FUNCTION routine, void * ptr ) · 17 unmodified lines | |||
| 103 | { | 103 | { |
| 104 | bool result = false; | 104 | bool result = false; |
| 105 | 105 | ||
| 106 | #if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) | 106 | #if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_OPENBSD__) ) |
| 107 | if( pthread_create( &thread, NULL, *routine, ptr ) == 0 ) | 107 | if( pthread_create( &thread, NULL, *routine, ptr ) == 0 ) |
| 108 | result = true; | 108 | result = true; |
| 109 | #elif defined(__PLATFORM_WIN32__) | 109 | #elif defined(__PLATFORM_WIN32__) |
| @@ -126,7 +126,7 @@ bool XThread::wait( long milliseconds, bool cancel ) · 16 unmodified lines | |||
| 126 | bool result = false; | 126 | bool result = false; |
| 127 | 127 | ||
| 128 | // TODO: find an alternative for Android? | 128 | // TODO: find an alternative for Android? |
| 129 | #if( defined(__PLATFORM_MACOSX__) || ( defined(__PLATFORM_LINUX__) && !defined(__ANDROID__) ) || defined(__WINDOWS_PTHREAD__) ) | 129 | #if( defined(__PLATFORM_MACOSX__) || ( defined(__PLATFORM_LINUX__) && !defined(__ANDROID__) ) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_OPENBSD__) ) |
| 130 | // cancel the thread? | 130 | // cancel the thread? |
| 131 | if( cancel ) pthread_cancel( thread ); | 131 | if( cancel ) pthread_cancel( thread ); |
| 132 | // wait for the thread to terminate | 132 | // wait for the thread to terminate |
| @@ -156,7 +156,7 @@ bool XThread::wait( long milliseconds, bool cancel ) · 23 unmodified lines | |||
| 156 | void XThread :: test( ) | 156 | void XThread :: test( ) |
| 157 | { | 157 | { |
| 158 | // TODO: find an alternative for Android? | 158 | // TODO: find an alternative for Android? |
| 159 | #if ( defined(__PLATFORM_MACOSX__) || ( defined(__PLATFORM_LINUX__) && !defined(__ANDROID__) ) || defined(__WINDOWS_PTHREAD__) ) | 159 | #if ( defined(__PLATFORM_MACOSX__) || ( defined(__PLATFORM_LINUX__) && !defined(__ANDROID__) ) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_OPENBSD__) ) |
| 160 | pthread_testcancel(); | 160 | pthread_testcancel(); |
| 161 | #endif | 161 | #endif |
| 162 | } | 162 | } |
| @@ -170,7 +170,7 @@ void XThread :: test( ) · 7 unmodified lines | |||
| 170 | //----------------------------------------------------------------------------- | 170 | //----------------------------------------------------------------------------- |
| 171 | XMutex::XMutex( ) | 171 | XMutex::XMutex( ) |
| 172 | { | 172 | { |
| 173 | #if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) | 173 | #if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_OPENBSD__) ) |
| 174 | pthread_mutex_init(&mutex, NULL); | 174 | pthread_mutex_init(&mutex, NULL); |
| 175 | #elif defined(__PLATFORM_WIN32__) | 175 | #elif defined(__PLATFORM_WIN32__) |
| 176 | InitializeCriticalSection(&mutex); | 176 | InitializeCriticalSection(&mutex); |
| @@ -186,7 +186,7 @@ XMutex::XMutex( ) · 9 unmodified lines | |||
| 186 | //----------------------------------------------------------------------------- | 186 | //----------------------------------------------------------------------------- |
| 187 | XMutex::~XMutex( ) | 187 | XMutex::~XMutex( ) |
| 188 | { | 188 | { |
| 189 | #if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) | 189 | #if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_OPENBSD__) ) |
| 190 | pthread_mutex_destroy( &mutex ); | 190 | pthread_mutex_destroy( &mutex ); |
| 191 | #elif defined(__PLATFORM_WIN32__) | 191 | #elif defined(__PLATFORM_WIN32__) |
| 192 | DeleteCriticalSection(&mutex); | 192 | DeleteCriticalSection(&mutex); |
| @@ -202,7 +202,7 @@ XMutex::~XMutex( ) · 9 unmodified lines | |||
| 202 | //----------------------------------------------------------------------------- | 202 | //----------------------------------------------------------------------------- |
| 203 | void XMutex::acquire( ) | 203 | void XMutex::acquire( ) |
| 204 | { | 204 | { |
| 205 | #if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) | 205 | #if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_OPENBSD__) ) |
| 206 | pthread_mutex_lock(&mutex); | 206 | pthread_mutex_lock(&mutex); |
| 207 | #elif defined(__PLATFORM_WIN32__) | 207 | #elif defined(__PLATFORM_WIN32__) |
| 208 | EnterCriticalSection(&mutex); | 208 | EnterCriticalSection(&mutex); |
| @@ -218,7 +218,7 @@ void XMutex::acquire( ) · 9 unmodified lines | |||
| 218 | //----------------------------------------------------------------------------- | 218 | //----------------------------------------------------------------------------- |
| 219 | void XMutex::release( ) | 219 | void XMutex::release( ) |
| 220 | { | 220 | { |
| 221 | #if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) | 221 | #if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_OPENBSD__) ) |
| 222 | pthread_mutex_unlock(&mutex); | 222 | pthread_mutex_unlock(&mutex); |
| 223 | #elif defined(__PLATFORM_WIN32__) | 223 | #elif defined(__PLATFORM_WIN32__) |
| 224 | LeaveCriticalSection(&mutex); | 224 | LeaveCriticalSection(&mutex); |
| @@ -416,7 +416,7 @@ void XWriteThread::flush_data_buffer() · 191 unmodified lines | |||
| 416 | // name: write_cb() | 416 | // name: write_cb() |
| 417 | // desc: thread function | 417 | // desc: thread function |
| 418 | //----------------------------------------------------------------------------- | 418 | //----------------------------------------------------------------------------- |
| 419 | #if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) | 419 | #if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_OPENBSD__) ) |
| 420 | void * XWriteThread::write_cb(void * _thiss) | 420 | void * XWriteThread::write_cb(void * _thiss) |
| 421 | #elif defined(__PLATFORM_WIN32__) | 421 | #elif defined(__PLATFORM_WIN32__) |
| 422 | unsigned XWriteThread::write_cb(void * _thiss) | 422 | unsigned XWriteThread::write_cb(void * _thiss) |