-
Notifications
You must be signed in to change notification settings - Fork 13.4k
Implement send_signal for unix child processes #141990
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
base: master
Are you sure you want to change the base?
Conversation
r? @ChrisDenton rustbot has assigned @ChrisDenton. Use |
cc @tgross35 as this modifies the proposed API slightly - fn send_signal(&self, signal: i32) -> Result<()>;
+ fn send_signal(&mut self, signal: i32) -> Result<()>; |
I didn't put too much thought into what I wrote there, so it's fine if it needs to change. That being said, why does this need to be @Qelxiros could you add documentation and examples here? |
You're right that it doesn't need to be mutable, so I changed it back. I do wonder why e.g. |
No it's not to do with Windows. It seems to have been a deliberate decision in the early days of rust, though I can't find any record of the thinking behind it. It was implemented in #22119 and all the implementations use |
@tgross35 could you add an unresolved question to the tracking issue regarding & vs &mut? I want to make sure it doesn't get forgotten before stabilization. |
Added. I think this implementation looks fine, just needs a squash (I'll let Chris do the final review) |
@rustbot ready |
149dd21
to
269ee72
Compare
Thanks! @bors r+ |
…r=ChrisDenton Implement send_signal for unix child processes Tracking issue: rust-lang#141975 There are two main differences between my implementation and the Public API section of the tracking issue. ~First, `send_signal` requires a mutable reference, like `Child::kill`.~ Second, `ChildExt` has `Sealed` as a supertrait, bringing it more in line with other extension traits like `CommandExt`.
Rollup of 7 pull requests Successful merges: - #138237 (Get rid of `EscapeDebugInner`.) - #140809 (Reduce special casing for the panic runtime) - #141990 (Implement send_signal for unix child processes) - #142082 (Refactor `rustc_attr_data_structures` documentation) - #142125 (Stabilize "file_lock" feature) - #142528 (clarify `rustc_do_not_const_check` comment) - #142530 (use `if let` guards where possible) r? `@ghost` `@rustbot` modify labels: rollup
@bors r- Failed the rollup at #142558 (comment). You'll need to make sure that all OSs in https://github.com/rust-lang/rust/tree/269ee72c330c21a9e0526e69fc0f85d762043d2d/library/std/src/sys/process/unix / https://github.com/rust-lang/rust/tree/68ac5abb067806a88464ddbfbd3c7eec877b488d/library/std/src/sys/process/unix have an implementation. |
Tracking issue: #141975
There are two main differences between my implementation and the Public API section of the tracking issue.
First,Second,send_signal
requires a mutable reference, likeChild::kill
.ChildExt
hasSealed
as a supertrait, bringing it more in line with other extension traits likeCommandExt
.