Mercurial > sdl-ios-xcode
diff src/thread/beos/SDL_syssem.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/beos/SDL_syssem.c Sun May 21 17:27:13 2006 +0000 +++ b/src/thread/beos/SDL_syssem.c Sun May 28 13:04:16 2006 +0000 @@ -28,115 +28,125 @@ #include "SDL_thread.h" -struct SDL_semaphore { - sem_id id; +struct SDL_semaphore +{ + sem_id id; }; /* Create a counting semaphore */ -SDL_sem *SDL_CreateSemaphore(Uint32 initial_value) +SDL_sem * +SDL_CreateSemaphore (Uint32 initial_value) { - SDL_sem *sem; + SDL_sem *sem; - sem = (SDL_sem *)SDL_malloc(sizeof(*sem)); - if ( sem ) { - sem->id = create_sem(initial_value, "SDL semaphore"); - if ( sem->id < B_NO_ERROR ) { - SDL_SetError("create_sem() failed"); - SDL_free(sem); - sem = NULL; - } - } else { - SDL_OutOfMemory(); - } - return(sem); + sem = (SDL_sem *) SDL_malloc (sizeof (*sem)); + if (sem) { + sem->id = create_sem (initial_value, "SDL semaphore"); + if (sem->id < B_NO_ERROR) { + SDL_SetError ("create_sem() failed"); + SDL_free (sem); + sem = NULL; + } + } else { + SDL_OutOfMemory (); + } + return (sem); } /* Free the semaphore */ -void SDL_DestroySemaphore(SDL_sem *sem) +void +SDL_DestroySemaphore (SDL_sem * sem) { - if ( sem ) { - if ( sem->id >= B_NO_ERROR ) { - delete_sem(sem->id); - } - SDL_free(sem); - } + if (sem) { + if (sem->id >= B_NO_ERROR) { + delete_sem (sem->id); + } + SDL_free (sem); + } } -int SDL_SemWaitTimeout(SDL_sem *sem, Uint32 timeout) +int +SDL_SemWaitTimeout (SDL_sem * sem, Uint32 timeout) { - int32 val; - int retval; + int32 val; + int retval; - if ( ! sem ) { - SDL_SetError("Passed a NULL semaphore"); - return -1; - } + if (!sem) { + SDL_SetError ("Passed a NULL semaphore"); + return -1; + } tryagain: - if ( timeout == SDL_MUTEX_MAXWAIT ) { - val = acquire_sem(sem->id); - } else { - timeout *= 1000; /* BeOS uses a timeout in microseconds */ - val = acquire_sem_etc(sem->id, 1, B_RELATIVE_TIMEOUT, timeout); - } - switch (val) { - case B_INTERRUPTED: - goto tryagain; - case B_NO_ERROR: - retval = 0; - break; - case B_TIMED_OUT: - retval = SDL_MUTEX_TIMEDOUT; - break; - case B_WOULD_BLOCK: - retval = SDL_MUTEX_TIMEDOUT; - break; - default: - SDL_SetError("acquire_sem() failed"); - retval = -1; - break; - } + if (timeout == SDL_MUTEX_MAXWAIT) { + val = acquire_sem (sem->id); + } else { + timeout *= 1000; /* BeOS uses a timeout in microseconds */ + val = acquire_sem_etc (sem->id, 1, B_RELATIVE_TIMEOUT, timeout); + } + switch (val) { + case B_INTERRUPTED: + goto tryagain; + case B_NO_ERROR: + retval = 0; + break; + case B_TIMED_OUT: + retval = SDL_MUTEX_TIMEDOUT; + break; + case B_WOULD_BLOCK: + retval = SDL_MUTEX_TIMEDOUT; + break; + default: + SDL_SetError ("acquire_sem() failed"); + retval = -1; + break; + } - return retval; + return retval; } -int SDL_SemTryWait(SDL_sem *sem) +int +SDL_SemTryWait (SDL_sem * sem) { - return SDL_SemWaitTimeout(sem, 0); + return SDL_SemWaitTimeout (sem, 0); } -int SDL_SemWait(SDL_sem *sem) +int +SDL_SemWait (SDL_sem * sem) { - return SDL_SemWaitTimeout(sem, SDL_MUTEX_MAXWAIT); + return SDL_SemWaitTimeout (sem, SDL_MUTEX_MAXWAIT); } /* Returns the current count of the semaphore */ -Uint32 SDL_SemValue(SDL_sem *sem) +Uint32 +SDL_SemValue (SDL_sem * sem) { - int32 count; - Uint32 value; + int32 count; + Uint32 value; - value = 0; - if ( sem ) { - get_sem_count(sem->id, &count); - if ( count > 0 ) { - value = (Uint32)count; - } - } - return value; + value = 0; + if (sem) { + get_sem_count (sem->id, &count); + if (count > 0) { + value = (Uint32) count; + } + } + return value; } /* Atomically increases the semaphore's count (not blocking) */ -int SDL_SemPost(SDL_sem *sem) +int +SDL_SemPost (SDL_sem * sem) { - if ( ! sem ) { - SDL_SetError("Passed a NULL semaphore"); - return -1; - } + if (!sem) { + SDL_SetError ("Passed a NULL semaphore"); + return -1; + } - if ( release_sem(sem->id) != B_NO_ERROR ) { - SDL_SetError("release_sem() failed"); - return -1; - } - return 0; + if (release_sem (sem->id) != B_NO_ERROR) { + SDL_SetError ("release_sem() failed"); + return -1; + } + return 0; } + +/* vi: set ts=4 sw=4 expandtab: */