aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2015-05-26 16:11:46 -0700
committerRoland McGrath <roland@hack.frob.com>2015-05-26 16:11:46 -0700
commit4da82229f0ea9dd50e43f15705ee92d5d30c4158 (patch)
tree528135e6a18afe3095ddf155bdb624bc2103f871
parent1f3a37b19ccc481197ffd6a5cf014dfb07c6dd4e (diff)
downloadglibc-4da82229f0ea9dd50e43f15705ee92d5d30c4158.zip
glibc-4da82229f0ea9dd50e43f15705ee92d5d30c4158.tar.gz
glibc-4da82229f0ea9dd50e43f15705ee92d5d30c4158.tar.bz2
NaCl: Fix thinko in last change.
-rw-r--r--sysdeps/nacl/lll_timedlock_wait.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/sysdeps/nacl/lll_timedlock_wait.c b/sysdeps/nacl/lll_timedlock_wait.c
index df951ee..1a41a6f 100644
--- a/sysdeps/nacl/lll_timedlock_wait.c
+++ b/sysdeps/nacl/lll_timedlock_wait.c
@@ -36,17 +36,18 @@ __lll_timedlock_wait (int *futex, const struct timespec *abstime, int private)
return EINVAL;
/* Try locking. */
- int result = 0;
while (atomic_exchange_acq (futex, 2) != 0)
{
/* If *futex == 2, wait until woken or timeout. */
- result = __nacl_irt_futex.futex_wait_abs ((volatile int *) futex, 2,
- abstime);
- if (__glibc_likely (result == 0)
- || __glibc_likely (result == ETIMEDOUT))
- break;
- assert (result == EAGAIN);
+ int err = __nacl_irt_futex.futex_wait_abs ((volatile int *) futex, 2,
+ abstime);
+ if (err != 0)
+ {
+ if (__glibc_likely (err == ETIMEDOUT))
+ return err;
+ assert (err == EAGAIN);
+ }
}
- return result;
+ return 0;
}