aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--nptl/lowlevelrobustlock.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 690012c..63dfbc5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-07-07 Jiyoung Yun <t2wish@gmail.com>
+
+ [BZ #20263]
+ * nptl/lowlevelrobustlock.c: Implement ETIMEDOUT logic.
+
2016-07-06 Stefan Liebler <stli@linux.vnet.ibm.com>
* sysdeps/s390/linkmap.h (struct link_map_machine):
diff --git a/nptl/lowlevelrobustlock.c b/nptl/lowlevelrobustlock.c
index 3b988b2..efe307e 100644
--- a/nptl/lowlevelrobustlock.c
+++ b/nptl/lowlevelrobustlock.c
@@ -118,8 +118,11 @@ __lll_robust_timedlock_wait (int *futex, const struct timespec *abstime,
|| !defined lll_futex_timed_wait_bitset)
lll_futex_timed_wait (futex, newval, &rt, private);
#else
- lll_futex_timed_wait_bitset (futex, newval, abstime,
- FUTEX_CLOCK_REALTIME, private);
+ int err = lll_futex_timed_wait_bitset (futex, newval, abstime,
+ FUTEX_CLOCK_REALTIME, private);
+ /* The futex call timed out. */
+ if (err == -ETIMEDOUT)
+ return -err;
#endif
try: