Procházet zdrojové kódy

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 před 13 roky
rodič
revize
8aeee8db21
1 změnil soubory, kde provedl 1 přidání a 1 odebrání
  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;