summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-08-03 08:36:13 -0400
committerRich Felker <dalias@aerifal.cx>2011-08-03 08:36:13 -0400
commit8aeee8db21858becb45a8e9f6b5bc23109638bcb (patch)
tree11475e62d962a59638305945f7beb686bddcb923
parent4f5ba9211e2b8e176ff9dfee3bdb0453cbc4d59b (diff)
downloadmusl-8aeee8db21858becb45a8e9f6b5bc23109638bcb.tar.gz
timedwait: play it safe for now
it's unclear whether EINVAL or ENOSYS is used when the operation is not supported, so check for both...
-rw-r--r--src/thread/__timedwait.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/thread/__timedwait.c b/src/thread/__timedwait.c
index 0444d39f..e15e2d0a 100644
--- a/src/thread/__timedwait.c
+++ b/src/thread/__timedwait.c
@@ -16,7 +16,7 @@ static int do_wait(volatile int *addr, int val, clockid_t clk, const struct time
if (clk == CLOCK_REALTIME) flag = FUTEX_CLOCK_REALTIME;
if (cp) r = -__syscall_cp(SYS_futex, addr, FUTEX_WAIT_BITSET|flag, val, at, 0, -1);
else r = -__syscall(SYS_futex, addr, FUTEX_WAIT_BITSET|flag, val, at, 0, -1);
- if (r != EINVAL) goto done;
+ if (r != EINVAL && r != ENOSYS) goto done;
}
if (clock_gettime(clk, &to)) return EINVAL;
to.tv_sec = at->tv_sec - to.tv_sec;