summaryrefslogtreecommitdiff
path: root/TSRM/TSRM.c
diff options
context:
space:
mode:
authorAntony Dovgal <tony2001@php.net>2008-02-07 09:06:45 +0000
committerAntony Dovgal <tony2001@php.net>2008-02-07 09:06:45 +0000
commita57ce92705eeaa591a8c75de6d52d4289dbb47c6 (patch)
tree73ac7e2f1643cbced601fe90c513b95de038f365 /TSRM/TSRM.c
parent87eb2a9ec3d4c7fedd41358ca452bde463b106a3 (diff)
downloadphp-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.c30
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)