35 log_error(
"Trying to register multiple at_thread_exit callbacks.");
71 data->func(data->arg);
189#elif defined(FREECIV_HAVE_PTHREAD)
204 data->func(data->arg);
337#elif defined(FREECIV_HAVE_WINTHREADS)
352 data->func(data->arg);
374 if (*thread ==
nullptr) {
452#error "No working thread implementation"
457#ifndef FREECIV_HAVE_THREAD_COND
492#ifdef FREECIV_HAVE_THREAD_COND
void fc_thread_cond_destroy(fc_thread_cond *cond)
void fc_thread_cond_signal(fc_thread_cond *cond)
void fc_thread_cond_wait(fc_thread_cond *cond, fc_mutex *mutex)
static void at_thread_exit(void)
bool has_thread_cond_impl(void)
bool register_at_thread_exit_callback(at_thread_exit_cb *cb)
void fc_thread_cond_init(fc_thread_cond *cond)
static at_thread_exit_cb * ate_cb
void fc_mutex_allocate(fc_mutex *mutex)
void() at_thread_exit_cb(void)
int fc_thread_start(fc_thread *thread, void(*function)(void *arg), void *arg)
void fc_mutex_init(fc_mutex *mutex)
void fc_mutex_release(fc_mutex *mutex)
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_destroy(fc_mutex *mutex)
#define log_error(message,...)
void fc_usleep(unsigned long usec)