diff options
| author | Dylan DPC <99973273+Dylan-DPC@users.noreply.github.com> | 2022-03-19 14:50:24 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-03-19 14:50:24 +0100 |
| commit | 3545003b290102a15e28ad5dd3af10c39fdcac6c (patch) | |
| tree | 727ba9514119953c40b9c8f3c4ac32fbbccc3c88 /library/std/src/os/unix/process.rs | |
| parent | 31535841701e0bf7ef33998024376f2cedd8b3e3 (diff) | |
| parent | b628497b7cf8235a7f74fa037e86051fa78b5188 (diff) | |
| download | rust-3545003b290102a15e28ad5dd3af10c39fdcac6c.tar.gz rust-3545003b290102a15e28ad5dd3af10c39fdcac6c.zip | |
Rollup merge of #93858 - krallin:process-process_group, r=dtolnay
Add a `process_group` method to UNIX `CommandExt` - Tracking issue: #93857 - RFC: https://github.com/rust-lang/rfcs/pull/3228 Add a `process_group` method to `std::os::unix::process::CommandExt` that allows setting the process group id (i.e. calling `setpgid`) in the child, thus enabling users to set process groups while leveraging the `posix_spawn` fast path.
Diffstat (limited to 'library/std/src/os/unix/process.rs')
| -rw-r--r-- | library/std/src/os/unix/process.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/library/std/src/os/unix/process.rs b/library/std/src/os/unix/process.rs index 855f900430c..d95bc9b15c9 100644 --- a/library/std/src/os/unix/process.rs +++ b/library/std/src/os/unix/process.rs @@ -149,6 +149,11 @@ pub trait CommandExt: Sealed { fn arg0<S>(&mut self, arg: S) -> &mut process::Command where S: AsRef<OsStr>; + + /// Sets the process group ID of the child process. Translates to a `setpgid` call in the child + /// process. + #[unstable(feature = "process_set_process_group", issue = "93857")] + fn process_group(&mut self, pgroup: i32) -> &mut process::Command; } #[stable(feature = "rust1", since = "1.0.0")] @@ -201,6 +206,11 @@ impl CommandExt for process::Command { self.as_inner_mut().set_arg_0(arg.as_ref()); self } + + fn process_group(&mut self, pgroup: i32) -> &mut process::Command { + self.as_inner_mut().pgroup(pgroup); + self + } } /// Unix-specific extensions to [`process::ExitStatus`] and |
