about summary refs log tree commit diff
path: root/sysdeps/nacl/lll_timedlock_wait.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/nacl/lll_timedlock_wait.c')
-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 df951ee8cb..1a41a6f6b4 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;
 }