From 415d0f9edcc5384321689a8a6584a6f5798710c6 Mon Sep 17 00:00:00 2001 From: Anhad Singh Date: Fri, 19 Dec 2025 14:10:55 +1100 Subject: [PATCH] fix(sync/futex_wait): handle `EINTR` Signed-off-by: Anhad Singh --- src/sync/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sync/mod.rs b/src/sync/mod.rs index 6c2cdd784d..9f56df5939 100644 --- a/src/sync/mod.rs +++ b/src/sync/mod.rs @@ -23,7 +23,7 @@ pub use self::{ use crate::{ error::Errno, header::{ - errno::{EAGAIN, ETIMEDOUT}, + errno::{EAGAIN, EINTR, ETIMEDOUT}, time::timespec, }, out::Out, @@ -109,7 +109,7 @@ pub unsafe fn futex_wait_ptr( deadline_opt: Option<×pec>, ) -> FutexWaitResult { match unsafe { Sys::futex_wait(ptr.cast(), value.conv(), deadline_opt) } { - Ok(()) => FutexWaitResult::Waited, + Ok(()) | Err(Errno(EINTR)) => FutexWaitResult::Waited, Err(Errno(EAGAIN)) => FutexWaitResult::Stale, Err(Errno(ETIMEDOUT)) if deadline_opt.is_some() => FutexWaitResult::TimedOut, Err(other) => {