added Mutex macros

This commit is contained in:
Brian Paul 2000-01-31 23:10:47 +00:00
parent 663049a719
commit bc794059d8

View file

@ -1,4 +1,4 @@
/* $Id: glthread.h,v 1.1 1999/12/16 17:31:06 brianp Exp $ */
/* $Id: glthread.h,v 1.2 2000/01/31 23:10:47 brianp Exp $ */
/*
* Mesa 3-D graphics library
@ -34,6 +34,8 @@
* Adapted for new gl dispatcher by Brian Paul
*/
#ifndef GLTHREAD_H
#define GLTHREAD_H
/*
@ -68,9 +70,22 @@ typedef struct {
pthread_once_t once;
} _glthread_TSD;
typedef pthread_mutex_t _glthread_Mutex;
typedef pthread_t _glthread_Thread;
typedef pthread_mutex_t _glthread_Mutex;
#define _glthread_DECLARE_STATIC_MUTEX(name) \
static _glthread_Mutex name = PTHREAD_MUTEX_INITIALIZER
#define _glthread_INIT_MUTEX(name) \
pthread_mutex_init(&(name), NULL)
#define _glthread_LOCK_MUTEX(name) \
(void) pthread_mutex_lock(&(name))
#define _glthread_UNLOCK_MUTEX(name) \
(void) pthread_mutex_unlock(&(name))
#endif /* PTHREADS */
@ -91,9 +106,16 @@ typedef struct {
int initfuncCalled;
} _glthread_TSD;
typedef mutex_t _glthread_Mutex;
typedef thread_t _glthread_Thread;
typedef mutex_t _glthread_Mutex;
/* XXX need to really implement mutex-related macros */
#define _glthread_DECLARE_STATIC_MUTEX(name) static _glthread_Mutex name = 0
#define _glthread_INIT_MUTEX(name) (void) name
#define _glthread_LOCK_MUTEX(name) (void) name
#define _glthread_UNLOCK_MUTEX(name) (void) name
#endif /* SOLARIS_THREADS */
@ -113,14 +135,22 @@ typedef struct {
int initfuncCalled;
} _glthread_TSD;
typedef CRITICAL_SECTION _glthread_Mutex;
typedef HANDLE _glthread_Thread;
typedef CRITICAL_SECTION _glthread_Mutex;
/* XXX need to really implement mutex-related macros */
#define _glthread_DECLARE_STATIC_MUTEX(name) static _glthread_Mutex name = 0
#define _glthread_INIT_MUTEX(name) (void) name
#define _glthread_LOCK_MUTEX(name) (void) name
#define _glthread_UNLOCK_MUTEX(name) (void) name
#endif /* WIN32 */
/*
* Platform independent thread specific data API.
*/
@ -142,4 +172,29 @@ _glthread_SetTSD(_glthread_TSD *, void *, void (*initfunc)(void));
#endif
#else /* THREADS */
/*
* THREADS not defined
*/
typedef GLuint _glthread_TSD;
typedef GLuint _glthread_Thread;
typedef GLuint _glthread_Mutex;
#define _glthread_DECLARE_STATIC_MUTEX(name) static _glthread_Mutex name = 0
#define _glthread_INIT_MUTEX(name) (void) name
#define _glthread_LOCK_MUTEX(name) (void) name
#define _glthread_UNLOCK_MUTEX(name) (void) name
#endif /* THREADS */
#endif /* THREADS_H */