X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=thread_pthread.c;h=2f8273ab41315f578c998a0344705ff8bbf864c8;hb=d21ad272ad2c10c98373065fe37bdf91008288e4;hp=27ccf5fbd8cd5a46226627a5a63bf7b28c527857;hpb=1f235f06de684fe5a3626b1dc51f638a1ff4cdb0;p=xonotic%2Fdarkplaces.git diff --git a/thread_pthread.c b/thread_pthread.c index 27ccf5fb..2f8273ab 100644 --- a/thread_pthread.c +++ b/thread_pthread.c @@ -16,7 +16,7 @@ void Thread_Shutdown(void) { } -qboolean Thread_HasThreads(void) +qbool Thread_HasThreads(void) { return true; } @@ -31,8 +31,10 @@ void *_Thread_CreateMutex(const char *filename, int fileline) Sys_PrintfToTerminal("%p mutex create %s:%i\n" , mutexp, filename, fileline); #endif #ifdef THREADRECURSIVE + pthread_mutexattr_init(&attr); pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); pthread_mutex_init(mutexp, &attr); + pthread_mutexattr_destroy(&attr); #else pthread_mutex_init(mutexp, NULL); #endif @@ -182,7 +184,7 @@ typedef struct { void *_Thread_CreateBarrier(unsigned int count, const char *filename, int fileline) { - barrier_t *b = Z_Malloc(sizeof(barrier_t)); + volatile barrier_t *b = (volatile barrier_t *) Z_Malloc(sizeof(barrier_t)); #ifdef THREADDEBUG Sys_PrintfToTerminal("%p barrier create(%d) %s:%i\n", b, count, filename, fileline); #endif @@ -195,7 +197,7 @@ void *_Thread_CreateBarrier(unsigned int count, const char *filename, int fileli void _Thread_DestroyBarrier(void *barrier, const char *filename, int fileline) { - barrier_t *b = (barrier_t *) barrier; + volatile barrier_t *b = (volatile barrier_t *) barrier; #ifdef THREADDEBUG Sys_PrintfToTerminal("%p barrier destroy %s:%i\n", b, filename, fileline); #endif @@ -205,7 +207,7 @@ void _Thread_DestroyBarrier(void *barrier, const char *filename, int fileline) void _Thread_WaitBarrier(void *barrier, const char *filename, int fileline) { - barrier_t *b = (barrier_t *) barrier; + volatile barrier_t *b = (volatile barrier_t *) barrier; #ifdef THREADDEBUG Sys_PrintfToTerminal("%p barrier wait %s:%i\n", b, filename, fileline); #endif