mirror of
https://github.com/nushell/nushell.git
synced 2025-05-30 06:39:33 +02:00
# Description / User-Facing Changes Signals are no longer blocked for child processes launched from both interactive and non-interactive mode. The only exception is that `SIGTSTP`, `SIGTTIN`, and `SIGTTOU` remain blocked for child processes launched only from **interactive** mode. This is to help prevent nushell from getting into an unrecoverable state, since we don't support background jobs. Anyways, this fully fixes #9026. # Other Notes - Needs Rust version `>= 1.66` for a fix in `std::process::Command::spawn`, but it looks our current Rust version is way above this. - Uses `sigaction` instead of `signal`, since the behavior of `signal` can apparently differ across systems. Also, the `sigaction` man page says: > The sigaction() function supersedes the signal() function, and should be used in preference. Additionally, using both `sigaction` and `signal` is not recommended. Since we were already using `sigaction` in some places (and possibly some of our dependencies as well), this PR replaces all usages of `signal`. # Tests Might want to wait for #11178 for testing.
17 lines
414 B
Rust
17 lines
414 B
Rust
mod foreground;
|
|
#[cfg(any(target_os = "android", target_os = "linux"))]
|
|
mod linux;
|
|
#[cfg(target_os = "macos")]
|
|
mod macos;
|
|
pub mod os_info;
|
|
#[cfg(target_os = "windows")]
|
|
mod windows;
|
|
|
|
pub use self::foreground::ForegroundChild;
|
|
#[cfg(any(target_os = "android", target_os = "linux"))]
|
|
pub use self::linux::*;
|
|
#[cfg(target_os = "macos")]
|
|
pub use self::macos::*;
|
|
#[cfg(target_os = "windows")]
|
|
pub use self::windows::*;
|