From ed46dd031d2d1eb714416cda8933a73e4c62e710 Mon Sep 17 00:00:00 2001 From: Anhad Singh Date: Thu, 18 Dec 2025 11:55:32 +1100 Subject: [PATCH] fix(platform/orbital): handle `EINTR` when reading from `event_socket` Signed-off-by: Anhad Singh --- winit-orbital/src/event_loop.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/winit-orbital/src/event_loop.rs b/winit-orbital/src/event_loop.rs index 8ef97156..7db55f14 100644 --- a/winit-orbital/src/event_loop.rs +++ b/winit-orbital/src/event_loop.rs @@ -639,7 +639,13 @@ impl EventLoop { // Wait for event if needed. let mut event = syscall::Event::default(); - self.window_target.event_socket.read(&mut event).unwrap(); + loop { + match self.window_target.event_socket.read(&mut event) { + Ok(_) => break, + Err(syscall::Error { errno: syscall::EINTR }) => continue, + Err(err) => unreachable!("failed to read event: {}", err), + } + } // TODO: handle spurious wakeups (redraw caused wakeup but redraw already handled) match requested_resume {