Feature #1434 » 0068-Add-fc_thread_self-and-fc_threads_equal.patch
| utility/fcthread.c | ||
|---|---|---|
|   thrd_join(*thread, return_value); | ||
| } | ||
| /*******************************************************************//** | ||
|   Get thread id | ||
| ***********************************************************************/ | ||
| fc_thread_id fc_thread_self(void) | ||
| { | ||
|   return thrd_current(); | ||
| } | ||
| /*******************************************************************//** | ||
|   Tell if two threads are the same | ||
| ***********************************************************************/ | ||
| bool fc_threads_equal(fc_thread_id thr1, fc_thread_id thr2) | ||
| { | ||
|   return thrd_equal(thr1, thr2); | ||
| } | ||
| /*******************************************************************//** | ||
|   Initialize mutex | ||
| ***********************************************************************/ | ||
| ... | ... | |
|   pthread_join(*thread, return_value); | ||
| } | ||
| /*******************************************************************//** | ||
|   Get thread id | ||
| ***********************************************************************/ | ||
| fc_thread_id fc_thread_self(void) | ||
| { | ||
|   return pthread_self(); | ||
| } | ||
| /*******************************************************************//** | ||
|   Tell if two threads are the same | ||
| ***********************************************************************/ | ||
| bool fc_threads_equal(fc_thread_id thr1, fc_thread_id thr2) | ||
| { | ||
|   return pthread_equal(thr1, thr2); | ||
| } | ||
| /*******************************************************************//** | ||
|   Initialize mutex | ||
| ***********************************************************************/ | ||
| ... | ... | |
|   CloseHandle(*thread); | ||
| } | ||
| /*******************************************************************//** | ||
|   Get thread id | ||
| ***********************************************************************/ | ||
| fc_thread_id fc_thread_self(void) | ||
| { | ||
|   return GetCurrentThreadId(); | ||
| } | ||
| /*******************************************************************//** | ||
|   Tell if two threads are the same | ||
| ***********************************************************************/ | ||
| bool fc_threads_equal(fc_thread_id thr1, fc_thread_id thr2) | ||
| { | ||
|   return thr1 == thr2; | ||
| }  | ||
| /*******************************************************************//** | ||
|   Initialize mutex | ||
| ***********************************************************************/ | ||
| utility/fcthread.h | ||
|---|---|---|
| #define fc_thread      thrd_t | ||
| #define fc_mutex       mtx_t | ||
| #define fc_thread_cond cnd_t | ||
| #define fc_thread_id   thrd_t | ||
| #elif defined(FREECIV_HAVE_PTHREAD) | ||
| ... | ... | |
| #define fc_thread      pthread_t | ||
| #define fc_mutex       pthread_mutex_t | ||
| #define fc_thread_cond pthread_cond_t | ||
| #define fc_thread_id   pthread_t | ||
| #elif defined (FREECIV_HAVE_WINTHREADS) | ||
| #include <windows.h> | ||
| #define fc_thread      HANDLE * | ||
| #define fc_mutex       HANDLE * | ||
| #define fc_thread_id   DWORD | ||
| #ifndef FREECIV_HAVE_THREAD_COND | ||
| #define fc_thread_cond char | ||
| ... | ... | |
| int fc_thread_start(fc_thread *thread, void (*function) (void *arg), void *arg); | ||
| void fc_thread_wait(fc_thread *thread); | ||
| fc_thread_id fc_thread_self(void); | ||
| bool fc_threads_equal(fc_thread_id thr1, fc_thread_id thr2); | ||
| void fc_mutex_init(fc_mutex *mutex); | ||
| void fc_mutex_destroy(fc_mutex *mutex); | ||