Mercurial > sdl-ios-xcode
view src/thread/pth/SDL_sysmutex.c @ 666:fbec2501cf9f
ate: Mon, 4 Aug 2003 19:10:14 +0300
From: "Mike Gorchak"
Subject: SDL/QNX forgotten fixes
Just found, that one chunk for configure.in has not been applied and one for\
gotten by me :) Please add it to CVS.
P.S. Now QNX6.2.1 have the dlopen in libc and in the libltdl. So libc's vari\
ant more prefered, and ltdl rest for compatibility. In this small patch I wa\
s added proper checks.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Wed, 06 Aug 2003 20:20:30 +0000 |
parents | 1d74ddc90cb2 |
children | 3692456e7b0f |
line wrap: on
line source
/* * GNU pth mutexes * * Patrice Mandin */ #include <stdio.h> #include <stdlib.h> #include <pth.h> #include "SDL_error.h" #include "SDL_mutex.h" #include "SDL_sysmutex_c.h" /* Create a mutex */ SDL_mutex *SDL_CreateMutex(void) { SDL_mutex *mutex; /* Allocate mutex memory */ mutex = (SDL_mutex *)malloc(sizeof(*mutex)); if ( mutex ) { /* Create the mutex, with initial value signaled */ if (!pth_mutex_init(&(mutex->mutexpth_p))) { SDL_SetError("Couldn't create mutex"); free(mutex); mutex = NULL; } } else { SDL_OutOfMemory(); } return(mutex); } /* Free the mutex */ void SDL_DestroyMutex(SDL_mutex *mutex) { if ( mutex ) { free(mutex); } } /* Lock the mutex */ int SDL_mutexP(SDL_mutex *mutex) { if ( mutex == NULL ) { SDL_SetError("Passed a NULL mutex"); return -1; } pth_mutex_acquire(&(mutex->mutexpth_p), FALSE, NULL); return(0); } /* Unlock the mutex */ int SDL_mutexV(SDL_mutex *mutex) { if ( mutex == NULL ) { SDL_SetError("Passed a NULL mutex"); return -1; } pth_mutex_release(&(mutex->mutexpth_p)); return(0); }