Mercurial > sdl-ios-xcode
diff src/thread/win32/SDL_syssem.c @ 1895:c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 10 Jul 2006 21:04:37 +0000 |
parents | bb6839704ed6 |
children | 99210400e8b9 |
line wrap: on
line diff
--- a/src/thread/win32/SDL_syssem.c Thu Jul 06 18:01:37 2006 +0000 +++ b/src/thread/win32/SDL_syssem.c Mon Jul 10 21:04:37 2006 +0000 @@ -32,133 +32,143 @@ #endif -struct SDL_semaphore { +struct SDL_semaphore +{ #if defined(_WIN32_WCE) && (_WIN32_WCE < 300) - SYNCHHANDLE id; + SYNCHHANDLE id; #else - HANDLE id; + HANDLE id; #endif - Uint32 volatile count; + Uint32 volatile count; }; /* Create a semaphore */ -SDL_sem *SDL_CreateSemaphore(Uint32 initial_value) +SDL_sem * +SDL_CreateSemaphore(Uint32 initial_value) { - SDL_sem *sem; + SDL_sem *sem; - /* Allocate sem memory */ - sem = (SDL_sem *)SDL_malloc(sizeof(*sem)); - if ( sem ) { - /* Create the semaphore, with max value 32K */ + /* Allocate sem memory */ + sem = (SDL_sem *) SDL_malloc(sizeof(*sem)); + if (sem) { + /* Create the semaphore, with max value 32K */ #if defined(_WIN32_WCE) && (_WIN32_WCE < 300) - sem->id = CreateSemaphoreCE(NULL, initial_value, 32*1024, NULL); + sem->id = CreateSemaphoreCE(NULL, initial_value, 32 * 1024, NULL); #else - sem->id = CreateSemaphore(NULL, initial_value, 32*1024, NULL); + sem->id = CreateSemaphore(NULL, initial_value, 32 * 1024, NULL); #endif - sem->count = initial_value; - if ( ! sem->id ) { - SDL_SetError("Couldn't create semaphore"); - SDL_free(sem); - sem = NULL; - } - } else { - SDL_OutOfMemory(); - } - return(sem); + sem->count = initial_value; + if (!sem->id) { + SDL_SetError("Couldn't create semaphore"); + 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 ) { + if (sem) { + if (sem->id) { #if defined(_WIN32_WCE) && (_WIN32_WCE < 300) - CloseSynchHandle(sem->id); + CloseSynchHandle(sem->id); #else - CloseHandle(sem->id); + CloseHandle(sem->id); #endif - sem->id = 0; - } - SDL_free(sem); - } + sem->id = 0; + } + SDL_free(sem); + } } -int SDL_SemWaitTimeout(SDL_sem *sem, Uint32 timeout) +int +SDL_SemWaitTimeout(SDL_sem * sem, Uint32 timeout) { - int retval; - DWORD dwMilliseconds; + int retval; + DWORD dwMilliseconds; - if ( ! sem ) { - SDL_SetError("Passed a NULL sem"); - return -1; - } + if (!sem) { + SDL_SetError("Passed a NULL sem"); + return -1; + } - if ( timeout == SDL_MUTEX_MAXWAIT ) { - dwMilliseconds = INFINITE; - } else { - dwMilliseconds = (DWORD)timeout; - } + if (timeout == SDL_MUTEX_MAXWAIT) { + dwMilliseconds = INFINITE; + } else { + dwMilliseconds = (DWORD) timeout; + } #if defined(_WIN32_WCE) && (_WIN32_WCE < 300) - switch (WaitForSemaphoreCE(sem->id, dwMilliseconds)) { + switch (WaitForSemaphoreCE(sem->id, dwMilliseconds)) { #else - switch (WaitForSingleObject(sem->id, dwMilliseconds)) { + switch (WaitForSingleObject(sem->id, dwMilliseconds)) { #endif - case WAIT_OBJECT_0: - --sem->count; - retval = 0; - break; - case WAIT_TIMEOUT: - retval = SDL_MUTEX_TIMEDOUT; - break; - default: - SDL_SetError("WaitForSingleObject() failed"); - retval = -1; - break; - } - return retval; + case WAIT_OBJECT_0: + --sem->count; + retval = 0; + break; + case WAIT_TIMEOUT: + retval = SDL_MUTEX_TIMEDOUT; + break; + default: + SDL_SetError("WaitForSingleObject() failed"); + retval = -1; + break; + } + 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) { - if ( ! sem ) { - SDL_SetError("Passed a NULL sem"); - return 0; - } - return sem->count; + if (!sem) { + SDL_SetError("Passed a NULL sem"); + return 0; + } + return sem->count; } -int SDL_SemPost(SDL_sem *sem) +int +SDL_SemPost(SDL_sem * sem) { - if ( ! sem ) { - SDL_SetError("Passed a NULL sem"); - return -1; - } - /* Increase the counter in the first place, because - * after a successful release the semaphore may - * immediately get destroyed by another thread which - * is waiting for this semaphore. - */ - ++sem->count; + if (!sem) { + SDL_SetError("Passed a NULL sem"); + return -1; + } + /* Increase the counter in the first place, because + * after a successful release the semaphore may + * immediately get destroyed by another thread which + * is waiting for this semaphore. + */ + ++sem->count; #if defined(_WIN32_WCE) && (_WIN32_WCE < 300) - if ( ReleaseSemaphoreCE(sem->id, 1, NULL) == FALSE ) { + if (ReleaseSemaphoreCE(sem->id, 1, NULL) == FALSE) { #else - if ( ReleaseSemaphore(sem->id, 1, NULL) == FALSE ) { + if (ReleaseSemaphore(sem->id, 1, NULL) == FALSE) { #endif - --sem->count; /* restore */ - SDL_SetError("ReleaseSemaphore() failed"); - return -1; - } - return 0; + --sem->count; /* restore */ + SDL_SetError("ReleaseSemaphore() failed"); + return -1; + } + return 0; } + +/* vi: set ts=4 sw=4 expandtab: */