-
Notifications
You must be signed in to change notification settings - Fork 0
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
Think some more about SIGPIPE
handling
#12
Comments
✔️ All good! |
SIGPIPE
handling
For now, I think I'm going to remove This seems preferable to the alternative. |
Remove `reset_sigpipe` and other code that handles `SIGPIPE` in any way, such as ignoring it or forwarding it to the child process. This restores the default behaviour of the Rust standard library, which is to always ignore the signal. This behaviour will be inherited by the child process. See #12 for context.
Closing this for now -- #18 changes the application as described in the previous comment. |
See also Slack monologue.
I'm not sure the current approach is right. I think we want is not the current
reset_sigpipe
reset, but#[unix_sigpipe = "inherit"]
, which is an experimental feature, available only on nightly.Child processes will inherit whatever we set, and without
#[unix_sigpipe = "inherit"]
, the child process will always have something (by default, "ignore") set on its behalf by the Rust standard library, so our options become:Break the behaviour of some child processes when used in pipes (without
reset_sigpipe
)Break the behaviour of some child processes when used in systemd (with
reset_sigpipe
)I care a lot more about the systemd use case than about the pipes use case, so the options I’m considering are “remove
reset_sigpipe
” or “use a nightly toolchain”.The text was updated successfully, but these errors were encountered: