summaryrefslogtreecommitdiff
path: root/gcc/gthr-posix.h
diff options
context:
space:
mode:
authorNicola Pero <nicola@gcc.gnu.org>2001-07-18 11:21:20 +0000
committerNicola Pero <nicola@gcc.gnu.org>2001-07-18 11:21:20 +0000
commit054af139880dd424ec00e148541344af8bc4897c (patch)
tree9fb7c2439676b7cfad96f8c55498f71f3ceb5db7 /gcc/gthr-posix.h
parentb8dd1bcdbeb096a1acf59cc9b791189c4f73b270 (diff)
downloadgcc-054af139880dd424ec00e148541344af8bc4897c.tar.gz
Fixed backend function of objc_mutex_trylock which was broken
From-SVN: r44104
Diffstat (limited to 'gcc/gthr-posix.h')
-rw-r--r--gcc/gthr-posix.h33
1 files changed, 21 insertions, 12 deletions
diff --git a/gcc/gthr-posix.h b/gcc/gthr-posix.h
index 8981eb66732..c047e559823 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 */