mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-22 12:31:32 +00:00
40 lines
1.1 KiB
C
40 lines
1.1 KiB
C
|
// SONIC ROBO BLAST 2 KART
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Copyright (C) 2020 by James R.
|
||
|
//
|
||
|
// This program is free software distributed under the
|
||
|
// terms of the GNU General Public License, version 2.
|
||
|
// See the 'LICENSE' file for more details.
|
||
|
//-----------------------------------------------------------------------------
|
||
|
/// \file i_threads.h
|
||
|
/// \brief Multithreading abstraction
|
||
|
|
||
|
#ifdef HAVE_THREADS
|
||
|
|
||
|
#ifndef I_THREADS_H
|
||
|
#define I_THREADS_H
|
||
|
|
||
|
typedef void (*I_thread_fn)(void *userdata);
|
||
|
|
||
|
typedef void * I_mutex;
|
||
|
typedef void * I_cond;
|
||
|
|
||
|
void I_start_threads (void);
|
||
|
void I_stop_threads (void);
|
||
|
|
||
|
void I_spawn_thread (const char *name, I_thread_fn, void *userdata);
|
||
|
|
||
|
/* check in your thread whether to return early */
|
||
|
int I_thread_is_stopped (void);
|
||
|
|
||
|
void I_lock_mutex (I_mutex *);
|
||
|
void I_unlock_mutex (I_mutex);
|
||
|
|
||
|
void I_hold_cond (I_cond *, I_mutex);
|
||
|
|
||
|
void I_wake_one_cond (I_cond);
|
||
|
void I_wake_all_cond (I_cond);
|
||
|
|
||
|
#endif/*I_THREADS_H*/
|
||
|
#endif/*HAVE_THREADS*/
|