Преглед на файлове

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 години
родител
ревизия
8aeee8db21
променени са 1 файла, в които са добавени 1 реда и са изтрити 1 реда
  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;