Description
In src/sys/windows/pipe.rs a pipe is opened for asynchronous access (aka "overlapped mode").
rust/library/std/src/sys/windows/pipe.rs
Lines 51 to 55 in 2d37f38
However the read method for pipes is:
rust/library/std/src/sys/windows/pipe.rs
Lines 184 to 186 in 2d37f38
Where inner
is a Handle
whose read method does not wait for the buffer to be filled:
rust/library/std/src/sys/windows/handle.rs
Lines 76 to 100 in 2d37f38
As far as I know this pipe is only used for process::ChildStd*
so we (probably) get away with it in typical usage. Also the read2
method below this does the right thing by synchronizing reads.
Found while investigating #81357
@rustbot label +T-libs +O-windows