From 054af139880dd424ec00e148541344af8bc4897c Mon Sep 17 00:00:00 2001
From: Nicola Pero <nicola@gcc.gnu.org>
Date: Wed, 18 Jul 2001 11:21:20 +0000
Subject: [PATCH] Fixed backend function of objc_mutex_trylock which was broken

From-SVN: r44104
---
 gcc/gthr-posix.h | 33 +++++++++++++++++++++------------
 1 file changed, 21 insertions(+), 12 deletions(-)

diff --git a/gcc/gthr-posix.h b/gcc/gthr-posix.h
index 8981eb66732c..c047e5598238 100644
--- a/gcc/gthr-posix.h
+++ b/gcc/gthr-posix.h
@@ -331,30 +331,39 @@ __gthread_objc_mutex_deallocate(objc_mutex_t mutex)
 static inline int
 __gthread_objc_mutex_lock(objc_mutex_t mutex)
 {
-  if (__gthread_active_p ())
-    return pthread_mutex_lock((pthread_mutex_t *)mutex->backend);
-  else
-    return 0;
+  if (__gthread_active_p () 
+      && pthread_mutex_lock((pthread_mutex_t *)mutex->backend) != 0)
+    {
+      return -1;
+    }
+
+  return 0;
 }
 
 /* Try to grab a lock on a mutex. */
 static inline int
 __gthread_objc_mutex_trylock(objc_mutex_t mutex)
 {
-  if (__gthread_active_p ())
-    return pthread_mutex_trylock((pthread_mutex_t *)mutex->backend);
-  else
-    return 0;
+  if (__gthread_active_p () 
+      && pthread_mutex_trylock((pthread_mutex_t *)mutex->backend) != 0)
+    {
+      return -1;
+    }
+
+  return 0;
 }
 
 /* Unlock the mutex */
 static inline int
 __gthread_objc_mutex_unlock(objc_mutex_t mutex)
 {
-  if (__gthread_active_p ())
-    return pthread_mutex_unlock((pthread_mutex_t *)mutex->backend);
-  else
-    return 0;
+  if (__gthread_active_p () 
+      && pthread_mutex_unlock((pthread_mutex_t *)mutex->backend) != 0)
+    {
+      return -1;
+    }
+
+  return 0;
 }
 
 /* Backend condition mutex functions */
-- 
GitLab