fix(sync/futex_wait): handle EINTR

Signed-off-by: Anhad Singh <andypython@protonmail.com>
This commit is contained in:
Anhad Singh
2025-12-19 14:10:55 +11:00
parent afbd5986a5
commit 415d0f9edc
+2 -2
View File
@@ -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<T: FutexTy>(
deadline_opt: Option<&timespec>,
) -> 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) => {