if available use a Child's pidfd for kill/wait
This commit is contained in:
parent
3ffbb4899e
commit
12efa53b19
3 changed files with 78 additions and 4 deletions
|
@ -152,6 +152,12 @@ pub trait CommandExt: Sealed {
|
|||
/// in a guaranteed race-free manner (e.g. if the `clone3` system call
|
||||
/// is supported). Otherwise, [`pidfd`] will return an error.
|
||||
///
|
||||
/// If a pidfd has been successfully created and not been taken from the `Child`
|
||||
/// then calls to `kill()`, `wait()` and `try_wait()` will use the pidfd
|
||||
/// instead of the pid. This can prevent pid recycling races, e.g.
|
||||
/// those caused by rogue libraries in the same process prematurely reaping
|
||||
/// zombie children via `waitpid(-1, ...)` calls.
|
||||
///
|
||||
/// [`Command`]: process::Command
|
||||
/// [`Child`]: process::Child
|
||||
/// [`pidfd`]: fn@ChildExt::pidfd
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue