Selaa lähdekoodia

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...
Rich Felker 13 vuotta sitten
vanhempi
sitoutus
8aeee8db21
1 muutettua tiedostoa jossa 1 lisäystä ja 1 poistoa
  1. 1 1
      src/thread/__timedwait.c

+ 1 - 1
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;