diff options
author | Antony Dovgal <tony2001@php.net> | 2008-02-07 09:06:45 +0000 |
---|---|---|
committer | Antony Dovgal <tony2001@php.net> | 2008-02-07 09:06:45 +0000 |
commit | a57ce92705eeaa591a8c75de6d52d4289dbb47c6 (patch) | |
tree | 73ac7e2f1643cbced601fe90c513b95de038f365 /TSRM/TSRM.c | |
parent | 87eb2a9ec3d4c7fedd41358ca452bde463b106a3 (diff) | |
download | php-git-a57ce92705eeaa591a8c75de6d52d4289dbb47c6.tar.gz |
MFH: fix TSRM mutex return value inconsitencies (patch by Scott MacVicar)
Diffstat (limited to 'TSRM/TSRM.c')
-rw-r--r-- | TSRM/TSRM.c | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/TSRM/TSRM.c b/TSRM/TSRM.c index f1182e6f45..cdb5b7ac8c 100644 --- a/TSRM/TSRM.c +++ b/TSRM/TSRM.c @@ -647,19 +647,26 @@ TSRM_API void tsrm_mutex_free(MUTEX_T mutexp) } -/* Lock a mutex */ +/* + Lock a mutex. + A return value of 0 indicates success +*/ TSRM_API int tsrm_mutex_lock(MUTEX_T mutexp) { TSRM_ERROR((TSRM_ERROR_LEVEL_INFO, "Mutex locked thread: %ld", tsrm_thread_id())); #ifdef TSRM_WIN32 EnterCriticalSection(mutexp); - return 1; + return 0; #elif defined(GNUPTH) - return pth_mutex_acquire(mutexp, 0, NULL); + if (pth_mutex_acquire(mutexp, 0, NULL)) { + return 0; + } + return -1; #elif defined(PTHREADS) return pthread_mutex_lock(mutexp); #elif defined(NSAPI) - return crit_enter(mutexp); + crit_enter(mutexp); + return 0; #elif defined(PI3WEB) return PISync_lock(mutexp); #elif defined(TSRM_ST) @@ -672,19 +679,26 @@ TSRM_API int tsrm_mutex_lock(MUTEX_T mutexp) } -/* Unlock a mutex */ +/* + Unlock a mutex. + A return value of 0 indicates success +*/ TSRM_API int tsrm_mutex_unlock(MUTEX_T mutexp) { TSRM_ERROR((TSRM_ERROR_LEVEL_INFO, "Mutex unlocked thread: %ld", tsrm_thread_id())); #ifdef TSRM_WIN32 LeaveCriticalSection(mutexp); - return 1; + return 0; #elif defined(GNUPTH) - return pth_mutex_release(mutexp); + if (pth_mutex_release(mutexp)) { + return 0; + } + return -1; #elif defined(PTHREADS) return pthread_mutex_unlock(mutexp); #elif defined(NSAPI) - return crit_exit(mutexp); + crit_exit(mutexp); + return 0; #elif defined(PI3WEB) return PISync_unlock(mutexp); #elif defined(TSRM_ST) |