DarkPlaces
Game engine based on the Quake 1 engine by id Software, developed by LadyHavoc
 
thread.h File Reference
#include "qtypes.h"
+ Include dependency graph for thread.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  Thread_Atomic
 

Macros

#define Thread_AtomicAdd(a, v)
 
#define Thread_AtomicDecRef(a)
 
#define Thread_AtomicGet(a)
 
#define Thread_AtomicIncRef(a)
 
#define Thread_AtomicLock(lock)
 
#define Thread_AtomicSet(a, v)
 
#define Thread_AtomicTryLock(lock)
 
#define Thread_AtomicUnlock(lock)
 
#define Thread_CondBroadcast(cond)
 
#define Thread_CondSignal(cond)
 
#define Thread_CondWait(cond, mutex)
 
#define Thread_CreateBarrier(count)
 
#define Thread_CreateCond()
 
#define Thread_CreateMutex()
 
#define Thread_CreateThread(fn, data)
 
#define Thread_DestroyBarrier(barrier)
 
#define Thread_DestroyCond(cond)
 
#define Thread_DestroyMutex(m)
 
#define Thread_LockMutex(m)
 
#define Thread_UnlockMutex(m)
 
#define Thread_WaitBarrier(barrier)
 
#define Thread_WaitThread(thread, retval)
 
#define THREADRECURSIVE
 

Typedefs

typedef int Thread_SpinLock
 

Functions

int _Thread_AtomicAdd (Thread_Atomic *ref, int v, const char *filename, int fileline)
 
qbool _Thread_AtomicDecRef (Thread_Atomic *ref, const char *filename, int fileline)
 
int _Thread_AtomicGet (Thread_Atomic *ref, const char *filename, int fileline)
 
void _Thread_AtomicIncRef (Thread_Atomic *ref, const char *filename, int fileline)
 
void _Thread_AtomicLock (Thread_SpinLock *lock, const char *filename, int fileline)
 
int _Thread_AtomicSet (Thread_Atomic *ref, int v, const char *filename, int fileline)
 
qbool _Thread_AtomicTryLock (Thread_SpinLock *lock, const char *filename, int fileline)
 
void _Thread_AtomicUnlock (Thread_SpinLock *lock, const char *filename, int fileline)
 
int _Thread_CondBroadcast (void *cond, const char *filename, int fileline)
 
int _Thread_CondSignal (void *cond, const char *filename, int fileline)
 
int _Thread_CondWait (void *cond, void *mutex, const char *filename, int fileline)
 
void_Thread_CreateBarrier (unsigned int count, const char *filename, int fileline)
 
void_Thread_CreateCond (const char *filename, int fileline)
 
void_Thread_CreateMutex (const char *filename, int fileline)
 
void_Thread_CreateThread (int(*fn)(void *), void *data, const char *filename, int fileline)
 
void _Thread_DestroyBarrier (void *barrier, const char *filename, int fileline)
 
void _Thread_DestroyCond (void *cond, const char *filename, int fileline)
 
void _Thread_DestroyMutex (void *mutex, const char *filename, int fileline)
 
int _Thread_LockMutex (void *mutex, const char *filename, int fileline)
 
int _Thread_UnlockMutex (void *mutex, const char *filename, int fileline)
 
void _Thread_WaitBarrier (void *barrier, const char *filename, int fileline)
 
int _Thread_WaitThread (void *thread, int retval, const char *filename, int fileline)
 
qbool Thread_HasThreads (void)
 
int Thread_Init (void)
 
void Thread_Shutdown (void)
 

Macro Definition Documentation

◆ Thread_AtomicAdd

#define Thread_AtomicAdd ( a,
v )
Value:
(_Thread_AtomicAdd(a, v, __FILE__, __LINE__))
const GLdouble * v
Definition glquake.h:762
ret a
int _Thread_AtomicAdd(Thread_Atomic *ref, int v, const char *filename, int fileline)
Definition thread_null.c:96

Definition at line 31 of file thread.h.

◆ Thread_AtomicDecRef

#define Thread_AtomicDecRef ( a)
Value:
(_Thread_AtomicDecRef(a, __FILE__, __LINE__))
qbool _Thread_AtomicDecRef(Thread_Atomic *ref, const char *filename, int fileline)

Definition at line 33 of file thread.h.

◆ Thread_AtomicGet

#define Thread_AtomicGet ( a)
Value:
(_Thread_AtomicGet(a, __FILE__, __LINE__))
int _Thread_AtomicGet(Thread_Atomic *ref, const char *filename, int fileline)
Definition thread_null.c:84

Definition at line 29 of file thread.h.

◆ Thread_AtomicIncRef

#define Thread_AtomicIncRef ( a)
Value:
(_Thread_AtomicIncRef(a, __FILE__, __LINE__))
void _Thread_AtomicIncRef(Thread_Atomic *ref, const char *filename, int fileline)

Definition at line 32 of file thread.h.

◆ Thread_AtomicLock

#define Thread_AtomicLock ( lock)
Value:
(_Thread_AtomicLock(lock, __FILE__, __LINE__))
void _Thread_AtomicLock(Thread_SpinLock *lock, const char *filename, int fileline)

Definition at line 35 of file thread.h.

Referenced by TaskQueue_DistributeTasks(), TaskQueue_Enqueue(), TaskQueue_Frame(), TaskQueue_ThreadFunc(), and TaskQueue_WaitForTaskDone().

◆ Thread_AtomicSet

#define Thread_AtomicSet ( a,
v )
Value:
(_Thread_AtomicSet(a, v, __FILE__, __LINE__))
int _Thread_AtomicSet(Thread_Atomic *ref, int v, const char *filename, int fileline)
Definition thread_null.c:89

Definition at line 30 of file thread.h.

◆ Thread_AtomicTryLock

#define Thread_AtomicTryLock ( lock)
Value:
(_Thread_AtomicTryLock(lock, __FILE__, __LINE__))
qbool _Thread_AtomicTryLock(Thread_SpinLock *lock, const char *filename, int fileline)

Definition at line 34 of file thread.h.

◆ Thread_AtomicUnlock

#define Thread_AtomicUnlock ( lock)
Value:
(_Thread_AtomicUnlock(lock, __FILE__, __LINE__))
void _Thread_AtomicUnlock(Thread_SpinLock *lock, const char *filename, int fileline)

Definition at line 36 of file thread.h.

Referenced by TaskQueue_DistributeTasks(), TaskQueue_Enqueue(), TaskQueue_Frame(), TaskQueue_ThreadFunc(), and TaskQueue_WaitForTaskDone().

◆ Thread_CondBroadcast

#define Thread_CondBroadcast ( cond)
Value:
(_Thread_CondBroadcast(cond, __FILE__, __LINE__))
int _Thread_CondBroadcast(void *cond, const char *filename, int fileline)
Definition thread_null.c:51

Definition at line 22 of file thread.h.

Referenced by _Thread_WaitBarrier().

◆ Thread_CondSignal

#define Thread_CondSignal ( cond)
Value:
(_Thread_CondSignal(cond, __FILE__, __LINE__))
int _Thread_CondSignal(void *cond, const char *filename, int fileline)
Definition thread_null.c:46

Definition at line 21 of file thread.h.

◆ Thread_CondWait

#define Thread_CondWait ( cond,
mutex )
Value:
(_Thread_CondWait(cond, mutex, __FILE__, __LINE__))
int _Thread_CondWait(void *cond, void *mutex, const char *filename, int fileline)
Definition thread_null.c:56

Definition at line 23 of file thread.h.

Referenced by _Thread_WaitBarrier().

◆ Thread_CreateBarrier

#define Thread_CreateBarrier ( count)
Value:
(_Thread_CreateBarrier(count, __FILE__, __LINE__))
GLenum GLenum GLsizei count
Definition glquake.h:656
void * _Thread_CreateBarrier(unsigned int count, const char *filename, int fileline)
Definition thread_null.c:71

Definition at line 26 of file thread.h.

◆ Thread_CreateCond

#define Thread_CreateCond ( )
Value:
(_Thread_CreateCond(__FILE__, __LINE__))
void * _Thread_CreateCond(const char *filename, int fileline)
Definition thread_null.c:37

Definition at line 19 of file thread.h.

Referenced by _Thread_CreateBarrier().

◆ Thread_CreateMutex

#define Thread_CreateMutex ( )
Value:
(_Thread_CreateMutex(__FILE__, __LINE__))
void * _Thread_CreateMutex(const char *filename, int fileline)
Definition thread_null.c:18

Definition at line 15 of file thread.h.

Referenced by _Thread_CreateBarrier(), Cmd_Init(), Con_Init(), Crypto_d0_createmutex(), Curl_Init(), FS_Init_Dir(), Memory_Init(), NetConn_Init(), and SV_StartThread().

◆ Thread_CreateThread

#define Thread_CreateThread ( fn,
data )
Value:
(_Thread_CreateThread(fn, data, __FILE__, __LINE__))
GLsizeiptr const GLvoid * data
Definition glquake.h:639
void * _Thread_CreateThread(int(*fn)(void *), void *data, const char *filename, int fileline)
Definition thread_null.c:61

Definition at line 24 of file thread.h.

Referenced by SV_StartThread(), and TaskQueue_Frame().

◆ Thread_DestroyBarrier

#define Thread_DestroyBarrier ( barrier)
Value:
(_Thread_DestroyBarrier(barrier, __FILE__, __LINE__))
void _Thread_DestroyBarrier(void *barrier, const char *filename, int fileline)
Definition thread_null.c:76

Definition at line 27 of file thread.h.

◆ Thread_DestroyCond

#define Thread_DestroyCond ( cond)
Value:
(_Thread_DestroyCond(cond, __FILE__, __LINE__))
void _Thread_DestroyCond(void *cond, const char *filename, int fileline)
Definition thread_null.c:42

Definition at line 20 of file thread.h.

Referenced by _Thread_DestroyBarrier().

◆ Thread_DestroyMutex

#define Thread_DestroyMutex ( m)
Value:
(_Thread_DestroyMutex(m, __FILE__, __LINE__))
void _Thread_DestroyMutex(void *mutex, const char *filename, int fileline)
Definition thread_null.c:23

Definition at line 16 of file thread.h.

Referenced by _Thread_DestroyBarrier(), Con_Shutdown(), Crypto_d0_destroymutex(), Curl_Shutdown(), FS_Shutdown(), Memory_Shutdown(), NetConn_Shutdown(), and SV_StopThread().

◆ Thread_LockMutex

◆ Thread_UnlockMutex

◆ Thread_WaitBarrier

#define Thread_WaitBarrier ( barrier)
Value:
(_Thread_WaitBarrier(barrier, __FILE__, __LINE__))
void _Thread_WaitBarrier(void *barrier, const char *filename, int fileline)
Definition thread_null.c:80

Definition at line 28 of file thread.h.

◆ Thread_WaitThread

#define Thread_WaitThread ( thread,
retval )
Value:
(_Thread_WaitThread(thread, retval, __FILE__, __LINE__))
int _Thread_WaitThread(void *thread, int retval, const char *filename, int fileline)
Definition thread_null.c:66

Definition at line 25 of file thread.h.

Referenced by SV_StopThread(), and TaskQueue_Frame().

◆ THREADRECURSIVE

#define THREADRECURSIVE

Definition at line 10 of file thread.h.

Typedef Documentation

◆ Thread_SpinLock

Definition at line 12 of file thread.h.

Function Documentation

◆ _Thread_AtomicAdd()

int _Thread_AtomicAdd ( Thread_Atomic * ref,
int v,
const char * filename,
int fileline )

Definition at line 96 of file thread_null.c.

97{
98 int value = a->value;
99 a->value += v;
100 return value;
101}
GLsizei const GLfloat * value
Definition glquake.h:740

References a, Sys_Printf(), v, and value.

◆ _Thread_AtomicDecRef()

qbool _Thread_AtomicDecRef ( Thread_Atomic * ref,
const char * filename,
int fileline )

Definition at line 108 of file thread_null.c.

109{
110 return a->value++ == 1;
111}

References a, and Sys_Printf().

◆ _Thread_AtomicGet()

int _Thread_AtomicGet ( Thread_Atomic * ref,
const char * filename,
int fileline )

Definition at line 84 of file thread_null.c.

85{
86 return a->value;
87}

References a, and Sys_Printf().

◆ _Thread_AtomicIncRef()

void _Thread_AtomicIncRef ( Thread_Atomic * ref,
const char * filename,
int fileline )

Definition at line 103 of file thread_null.c.

104{
105 a->value++;
106}

References a, and Sys_Printf().

◆ _Thread_AtomicLock()

void _Thread_AtomicLock ( Thread_SpinLock * lock,
const char * filename,
int fileline )

Definition at line 118 of file thread_null.c.

119{
120}

References Sys_Printf().

◆ _Thread_AtomicSet()

int _Thread_AtomicSet ( Thread_Atomic * ref,
int v,
const char * filename,
int fileline )

Definition at line 89 of file thread_null.c.

90{
91 int value = a->value;
92 a->value = v;
93 return value;
94}

References a, Sys_Printf(), v, and value.

◆ _Thread_AtomicTryLock()

qbool _Thread_AtomicTryLock ( Thread_SpinLock * lock,
const char * filename,
int fileline )

Definition at line 113 of file thread_null.c.

114{
115 return true;
116}

References Sys_Printf().

◆ _Thread_AtomicUnlock()

void _Thread_AtomicUnlock ( Thread_SpinLock * lock,
const char * filename,
int fileline )

Definition at line 122 of file thread_null.c.

123{
124}

References Sys_Printf().

◆ _Thread_CondBroadcast()

int _Thread_CondBroadcast ( void * cond,
const char * filename,
int fileline )

◆ _Thread_CondSignal()

int _Thread_CondSignal ( void * cond,
const char * filename,
int fileline )

◆ _Thread_CondWait()

int _Thread_CondWait ( void * cond,
void * mutex,
const char * filename,
int fileline )

◆ _Thread_CreateBarrier()

void * _Thread_CreateBarrier ( unsigned int count,
const char * filename,
int fileline )

Definition at line 71 of file thread_null.c.

72{
73 return NULL;
74}
#define NULL
Definition qtypes.h:12

References b, count, NULL, Sys_Printf(), Thread_CreateCond, Thread_CreateMutex, and Z_Malloc.

◆ _Thread_CreateCond()

void * _Thread_CreateCond ( const char * filename,
int fileline )

◆ _Thread_CreateMutex()

void * _Thread_CreateMutex ( const char * filename,
int fileline )

Definition at line 18 of file thread_null.c.

19{
20 return NULL;
21}

References FALSE, NULL, Sys_Printf(), and Z_Malloc.

◆ _Thread_CreateThread()

void * _Thread_CreateThread ( int(* fn )(void *),
void * data,
const char * filename,
int fileline )

Definition at line 61 of file thread_null.c.

62{
63 return NULL;
64}

References data, NULL, r, Sys_Printf(), Thread_WrapperFunc(), w, Z_Free, and Z_Malloc.

◆ _Thread_DestroyBarrier()

void _Thread_DestroyBarrier ( void * barrier,
const char * filename,
int fileline )

Definition at line 76 of file thread_null.c.

77{
78}

References b, Sys_Printf(), Thread_DestroyCond, and Thread_DestroyMutex.

◆ _Thread_DestroyCond()

void _Thread_DestroyCond ( void * cond,
const char * filename,
int fileline )

◆ _Thread_DestroyMutex()

void _Thread_DestroyMutex ( void * mutex,
const char * filename,
int fileline )

Definition at line 23 of file thread_null.c.

24{
25}

References Sys_Printf(), and Z_Free.

◆ _Thread_LockMutex()

int _Thread_LockMutex ( void * mutex,
const char * filename,
int fileline )

Definition at line 27 of file thread_null.c.

28{
29 return -1;
30}

References Sys_Printf().

◆ _Thread_UnlockMutex()

int _Thread_UnlockMutex ( void * mutex,
const char * filename,
int fileline )

Definition at line 32 of file thread_null.c.

33{
34 return -1;
35}

References Sys_Printf().

◆ _Thread_WaitBarrier()

void _Thread_WaitBarrier ( void * barrier,
const char * filename,
int fileline )

Definition at line 80 of file thread_null.c.

81{
82}

References b, Sys_Printf(), Thread_CondBroadcast, Thread_CondWait, Thread_LockMutex, and Thread_UnlockMutex.

◆ _Thread_WaitThread()

int _Thread_WaitThread ( void * thread,
int retval,
const char * filename,
int fileline )

Definition at line 66 of file thread_null.c.

67{
68 return retval;
69}

References Sys_Printf(), w, and Z_Free.

◆ Thread_HasThreads()

qbool Thread_HasThreads ( void )

Definition at line 13 of file thread_null.c.

14{
15 return false;
16}

Referenced by Con_Init(), Crypto_Init(), Curl_Init(), FS_Init_Dir(), Memory_Init(), NetConn_Init(), and SV_StartThread().

◆ Thread_Init()

int Thread_Init ( void )

Definition at line 4 of file thread_null.c.

5{
6 return 0;
7}

References Con_Printf().

Referenced by Host_Init().

◆ Thread_Shutdown()

void Thread_Shutdown ( void )

Definition at line 9 of file thread_null.c.

10{
11}

Referenced by Host_Shutdown().