mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-15 01:01:33 +00:00
39 lines
1.1 KiB
C
39 lines
1.1 KiB
C
// SONIC ROBO BLAST 2
|
|
//-----------------------------------------------------------------------------
|
|
// Copyright (C) 2020-2023 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*/
|