Mercurial > sdl-ios-xcode
diff src/thread/generic/SDL_sysmutex.c @ 1662:782fd950bd46 SDL-1.3
Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
WARNING: None of the video drivers have been updated for the new API yet! The API is still under design and very fluid.
The code is now run through a consistent indent format:
indent -i4 -nut -nsc -br -ce
The headers are being converted to automatically generate doxygen documentation.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 28 May 2006 13:04:16 +0000 |
parents | d910939febfa |
children | 4da1ee79c9af |
line wrap: on
line diff
--- a/src/thread/generic/SDL_sysmutex.c Sun May 21 17:27:13 2006 +0000 +++ b/src/thread/generic/SDL_sysmutex.c Sun May 28 13:04:16 2006 +0000 @@ -27,103 +27,110 @@ #include "SDL_systhread_c.h" -struct SDL_mutex { - int recursive; - Uint32 owner; - SDL_sem *sem; +struct SDL_mutex +{ + int recursive; + Uint32 owner; + SDL_sem *sem; }; /* Create a mutex */ -SDL_mutex *SDL_CreateMutex(void) +SDL_mutex * +SDL_CreateMutex (void) { - SDL_mutex *mutex; + SDL_mutex *mutex; - /* Allocate mutex memory */ - mutex = (SDL_mutex *)SDL_malloc(sizeof(*mutex)); - if ( mutex ) { - /* Create the mutex semaphore, with initial value 1 */ - mutex->sem = SDL_CreateSemaphore(1); - mutex->recursive = 0; - mutex->owner = 0; - if ( ! mutex->sem ) { - SDL_free(mutex); - mutex = NULL; - } - } else { - SDL_OutOfMemory(); - } - return mutex; + /* Allocate mutex memory */ + mutex = (SDL_mutex *) SDL_malloc (sizeof (*mutex)); + if (mutex) { + /* Create the mutex semaphore, with initial value 1 */ + mutex->sem = SDL_CreateSemaphore (1); + mutex->recursive = 0; + mutex->owner = 0; + if (!mutex->sem) { + SDL_free (mutex); + mutex = NULL; + } + } else { + SDL_OutOfMemory (); + } + return mutex; } /* Free the mutex */ -void SDL_DestroyMutex(SDL_mutex *mutex) +void +SDL_DestroyMutex (SDL_mutex * mutex) { - if ( mutex ) { - if ( mutex->sem ) { - SDL_DestroySemaphore(mutex->sem); - } - SDL_free(mutex); - } + if (mutex) { + if (mutex->sem) { + SDL_DestroySemaphore (mutex->sem); + } + SDL_free (mutex); + } } /* Lock the semaphore */ -int SDL_mutexP(SDL_mutex *mutex) +int +SDL_mutexP (SDL_mutex * mutex) { #if SDL_THREADS_DISABLED - return 0; + return 0; #else - Uint32 this_thread; + Uint32 this_thread; - if ( mutex == NULL ) { - SDL_SetError("Passed a NULL mutex"); - return -1; - } + if (mutex == NULL) { + SDL_SetError ("Passed a NULL mutex"); + return -1; + } - this_thread = SDL_ThreadID(); - if ( mutex->owner == this_thread ) { - ++mutex->recursive; - } else { - /* The order of operations is important. - We set the locking thread id after we obtain the lock - so unlocks from other threads will fail. - */ - SDL_SemWait(mutex->sem); - mutex->owner = this_thread; - mutex->recursive = 0; - } + this_thread = SDL_ThreadID (); + if (mutex->owner == this_thread) { + ++mutex->recursive; + } else { + /* The order of operations is important. + We set the locking thread id after we obtain the lock + so unlocks from other threads will fail. + */ + SDL_SemWait (mutex->sem); + mutex->owner = this_thread; + mutex->recursive = 0; + } - return 0; + return 0; #endif /* SDL_THREADS_DISABLED */ } /* Unlock the mutex */ -int SDL_mutexV(SDL_mutex *mutex) +int +SDL_mutexV (SDL_mutex * mutex) { #if SDL_THREADS_DISABLED - return 0; + return 0; #else - if ( mutex == NULL ) { - SDL_SetError("Passed a NULL mutex"); - return -1; - } + if (mutex == NULL) { + SDL_SetError ("Passed a NULL mutex"); + return -1; + } - /* If we don't own the mutex, we can't unlock it */ - if ( SDL_ThreadID() != mutex->owner ) { - SDL_SetError("mutex not owned by this thread"); - return -1; - } + /* If we don't own the mutex, we can't unlock it */ + if (SDL_ThreadID () != mutex->owner) { + SDL_SetError ("mutex not owned by this thread"); + return -1; + } - if ( mutex->recursive ) { - --mutex->recursive; - } else { - /* The order of operations is important. - First reset the owner so another thread doesn't lock - the mutex and set the ownership before we reset it, - then release the lock semaphore. - */ - mutex->owner = 0; - SDL_SemPost(mutex->sem); - } - return 0; + if (mutex->recursive) { + --mutex->recursive; + } else { + /* The order of operations is important. + First reset the owner so another thread doesn't lock + the mutex and set the ownership before we reset it, + then release the lock semaphore. + */ + mutex->owner = 0; + SDL_SemPost (mutex->sem); + } + return 0; #endif /* SDL_THREADS_DISABLED */ } + +/* vi: set ts=4 sw=4 expandtab: */