68 lines
2.2 KiB
C
68 lines
2.2 KiB
C
/* ______ ___ ___
|
|
* /\ _ \ /\_ \ /\_ \
|
|
* \ \ \L\ \\//\ \ \//\ \ __ __ _ __ ___
|
|
* \ \ __ \ \ \ \ \ \ \ /'__`\ /'_ `\/\`'__\/ __`\
|
|
* \ \ \/\ \ \_\ \_ \_\ \_/\ __//\ \L\ \ \ \//\ \L\ \
|
|
* \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/
|
|
* \/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/
|
|
* /\____/
|
|
* \_/__/
|
|
*
|
|
* Thread routines.
|
|
*
|
|
* See readme.txt for copyright information.
|
|
*/
|
|
|
|
#ifndef __al_included_allegro5_threads_h
|
|
#define __al_included_allegro5_threads_h
|
|
|
|
#include "allegro5/altime.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Type: ALLEGRO_THREAD
|
|
*/
|
|
typedef struct ALLEGRO_THREAD ALLEGRO_THREAD;
|
|
|
|
/* Type: ALLEGRO_MUTEX
|
|
*/
|
|
typedef struct ALLEGRO_MUTEX ALLEGRO_MUTEX;
|
|
|
|
/* Type: ALLEGRO_COND
|
|
*/
|
|
typedef struct ALLEGRO_COND ALLEGRO_COND;
|
|
|
|
|
|
AL_FUNC(ALLEGRO_THREAD *, al_create_thread,
|
|
(void *(*proc)(ALLEGRO_THREAD *thread, void *arg), void *arg));
|
|
AL_FUNC(void, al_start_thread, (ALLEGRO_THREAD *outer));
|
|
AL_FUNC(void, al_join_thread, (ALLEGRO_THREAD *outer, void **ret_value));
|
|
AL_FUNC(void, al_set_thread_should_stop, (ALLEGRO_THREAD *outer));
|
|
AL_FUNC(bool, al_get_thread_should_stop, (ALLEGRO_THREAD *outer));
|
|
AL_FUNC(void, al_destroy_thread, (ALLEGRO_THREAD *thread));
|
|
AL_FUNC(void, al_run_detached_thread, (void *(*proc)(void *arg), void *arg));
|
|
|
|
AL_FUNC(ALLEGRO_MUTEX *, al_create_mutex, (void));
|
|
AL_FUNC(ALLEGRO_MUTEX *, al_create_mutex_recursive, (void));
|
|
AL_FUNC(void, al_lock_mutex, (ALLEGRO_MUTEX *mutex));
|
|
AL_FUNC(void, al_unlock_mutex, (ALLEGRO_MUTEX *mutex));
|
|
AL_FUNC(void, al_destroy_mutex, (ALLEGRO_MUTEX *mutex));
|
|
|
|
AL_FUNC(ALLEGRO_COND *, al_create_cond, (void));
|
|
AL_FUNC(void, al_destroy_cond, (ALLEGRO_COND *cond));
|
|
AL_FUNC(void, al_wait_cond, (ALLEGRO_COND *cond, ALLEGRO_MUTEX *mutex));
|
|
AL_FUNC(int, al_wait_cond_until, (ALLEGRO_COND *cond, ALLEGRO_MUTEX *mutex,
|
|
const ALLEGRO_TIMEOUT *timeout));
|
|
AL_FUNC(void, al_broadcast_cond, (ALLEGRO_COND *cond));
|
|
AL_FUNC(void, al_signal_cond, (ALLEGRO_COND *cond));
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|
|
/* vim: set sts=3 sw=3 et: */
|