cvs: TSRM(PHP_5_3) / TSRM.c

[email protected] ("Antony Dovgal")
Newsgroups php.zend-engine.cvs
Message-ID <cvstony20011202375205@cvsserver>
tony2001		Thu Feb  7 09:06:45 2008 UTC

  Modified files:              (Branch: PHP_5_3)
    /TSRM	TSRM.c 
  Log:
  MFH: fix TSRM mutex return value inconsitencies (patch by Scott MacVicar)
  
  
http://cvs.php.net/viewvc.cgi/TSRM/TSRM.c?r1=1.68.2.3.2.1.2.1&r2=1.68.2.3.2.1.2.2&diff_format=u
Index: TSRM/TSRM.c
diff -u TSRM/TSRM.c:1.68.2.3.2.1.2.1 TSRM/TSRM.c:1.68.2.3.2.1.2.2
--- TSRM/TSRM.c:1.68.2.3.2.1.2.1	Mon Dec 31 07:17:03 2007
+++ TSRM/TSRM.c	Thu Feb  7 09:06:45 2008
@@ -647,19 +647,26 @@
 }
 
 
-/* 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 @@
 }
 
 
-/* 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)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.