diff options
| author | Yuki Okushi <jtitor@2k36.org> | 2022-05-11 00:09:32 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-11 00:09:32 +0900 |
| commit | f689f6582ccdbe8d1629416becb3671ecc69a7f2 (patch) | |
| tree | cf5d98f16f8012c4eaa6354e57f9ff7293571f78 /compiler/rustc_codegen_llvm/src/attributes.rs | |
| parent | 77030b7825796461f10ee5dd774caa46ad09c64a (diff) | |
| parent | 5368ea7d2eae4e86c1c7a68197506d062bc1689d (diff) | |
| download | rust-f689f6582ccdbe8d1629416becb3671ecc69a7f2.tar.gz rust-f689f6582ccdbe8d1629416becb3671ecc69a7f2.zip | |
Rollup merge of #96725 - nico-abram:win_tid, r=ChrisDenton
Expose process windows_process_extensions_main_thread_handle on Windows
~~I did not find any tests in https://github.com/rust-lang/rust/blob/7d3e03666a93bd2b0f78b3933f9305832af771a5/library/std/src/sys/windows/process/tests.rs that actually launch processes, so I haven't added tests for this.~~ I ran the following locally, to check that it works as expected:
```rs
#![feature(windows_process_extensions_main_thread_handle)]
fn main() {
use std::os::windows::process::{ChildExt, CommandExt};
const CREATE_SUSPENDED: u32 = 0x00000004;
let proc = std::process::Command::new("cmd")
.args(["/C", "echo hello"])
.creation_flags(CREATE_SUSPENDED)
.spawn()
.unwrap();
extern "system" {
fn ResumeThread(_: *mut std::ffi::c_void) -> u32;
}
unsafe {
ResumeThread(proc.main_thread_handle());
}
let output = proc.wait_with_output().unwrap();
let str_output = std::str::from_utf8(&output.stdout[..]).unwrap();
println!("{}", str_output);
}
```
Without the feature attribute it wouldn't compile, and commenting the `ResumeThread` line makes it hang forever, showing that it works.
Trakcing issue https://github.com/rust-lang/rust/issues/96723
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/attributes.rs')
0 files changed, 0 insertions, 0 deletions
