Kaynağa Gözat

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 yıl önce
ebeveyn
işleme
8aeee8db21
1 değiştirilmiş dosya ile 1 ekleme ve 1 silme
  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;