-
Notifications
You must be signed in to change notification settings - Fork 13.3k
many system calls don't handle EINTR #11214
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Wouldn't |
If you use libuv Note that I don't think that all syscalls can return EINTR, at least the man page I'm looking at doesn't have EINTR as an error for Most things probably need to just get wrapped in this function: https://github.com/mozilla/rust/blob/master/src/libnative/io/mod.rs#L138 |
@alexcrichton: Yeah, |
It would save a lot of trouble if we used stdio instead and disabled buffering with |
I remember reading recently that the situation with |
@brson: I think there are some operating systems where you're supposed to handle it but it doesn't appear we support any of them (HP-UX). |
check that the types are equal in `SpanlessEq::eq_expr` Fixes rust-lang#11213 changelog: [`if_same_then_else`]: don't lint for integer literals of different types
POSIX system calls return with
EINTR
if a signal is sent to the process. Most uses of system calls need to be changed to looping until success. Thefsync
andfdatasync
implementation in the nativeio::file
need to do this too. Aclose
call on non-Linux platforms also has to do this, but must not loop on Linux (thanks for nothing POSIX!).The text was updated successfully, but these errors were encountered: