fix(platform/orbital): handle EINTR when reading from event_socket

Signed-off-by: Anhad Singh <andypython@protonmail.com>
This commit is contained in:
Anhad Singh 2025-12-18 11:55:32 +11:00 committed by Ashley Wulber
parent 6c9a2d4e9b
commit ed46dd031d
No known key found for this signature in database
GPG key ID: 5216D4F46A90A820

View file

@ -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 {