rust/library/std/src
Jacob Pratt b5fcc90fd7
Rollup merge of #142517 - ChrisDenton:anon-pipe, r=Mark-Simulacrum
Windows: Use anonymous pipes in Command

When setting `Stdio::pipe` on `Command` we want to create an anonymous pipe that can be used asynchronously (at least on our end). Usually we'd use [`CreatePipe`](https://learn.microsoft.com/en-us/windows/win32/api/namedpipeapi/nf-namedpipeapi-createpipe) to open anonymous pipes but unfortunately it opens pipes for synchronous access. The alternative is to use [`CreateNamedPipeW`](https://learn.microsoft.com/en-us/windows/win32/api/namedpipeapi/nf-namedpipeapi-createnamedpipew) which does allow asynchronous access but that requires giving a file name to the pipe. So we currently have this awful hack where we attempt to emulate anonymous pipes using `CreateNamedPipeW` by attempting to create a unique name and looping until we find one that doesn't already exist.

The better option is to use the lower level [`NtCreateNamedPipeFile`](https://learn.microsoft.com/en-us/windows/win32/devnotes/nt-create-named-pipe-file) (which is used internally by both `CreatePipe` and `CreateNamedPipeW`). This function wasn't documented until a few years ago but now that it is it's ok for us to use it.

try-job: *msvc*
try-job: *mingw*
2025-06-17 23:19:34 +02:00
..
backtrace remove redundant imports 2023-12-10 10:56:22 +08:00
collections Docs(lib/coll/hm): Add kv pair to extract_if's first sentence 2025-05-17 02:49:57 +02:00
ffi Rollup merge of #137992 - its-the-shrimp:stabilise_os_string_pathbuf_leak, r=dtolnay 2025-06-07 07:05:44 +02:00
fs Test(fs): Fix test_eq_windows_file_type for Windows 7 2025-05-28 12:06:25 +02:00
hash remove const_hash feature leftovers 2024-11-02 11:27:14 +01:00
io Rollup merge of #142102 - kiseitai3:141714_stdin_read_to_string_docs, r=tgross35 2025-06-10 16:54:49 +02:00
net ToSocketAddrs: fix typo 2025-04-04 14:47:04 +02:00
num Auto merge of #138062 - LorrensP-2158466:miri-enable-float-nondet, r=RalfJung 2025-06-09 21:21:58 +00:00
os Delegate <SocketAddr as Debug> to ByteStr 2025-06-12 19:08:48 -04:00
prelude update cfg(bootstrap) 2025-05-12 15:33:37 +02:00
process std: Apply deprecated_safe_2024 2025-02-13 13:10:28 -08:00
sync Rollup merge of #140715 - lukaslueg:oncecellsyncdocs, r=tgross35 2025-06-03 07:03:42 +02:00
sys Windows: Use anonymous pipes in Command 2025-06-15 16:56:50 +00:00
sys_common make OsString::new and PathBuf::new unstably const 2025-05-24 22:33:11 +02:00
thread update cfg(bootstrap) 2025-05-12 15:33:37 +02:00
alloc.rs use generic Atomic type where possible 2025-04-27 02:18:08 +03:00
ascii.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
backtrace.rs use generic Atomic type where possible 2025-04-27 02:18:08 +03:00
bstr.rs Implement ByteStr and ByteString types 2025-01-11 06:35:21 +02:00
env.rs Add new Tier-3 targets: loongarch32-unknown-none* 2025-06-06 08:19:38 +08:00
error.rs Move std::error unit tests to integration tests 2025-01-26 10:28:04 +00:00
fs.rs Stabilize "file_lock" feature 2025-06-15 06:44:46 -07:00
keyword_docs.rs unsafe keyword docs: emphasize that an unsafe fn in a trait does not get to choose its safety contract 2025-06-06 22:34:10 +02:00
lib.miri.rs add 'x.py miri', and make it work for 'library/{core,alloc,std}' 2024-04-03 20:27:20 +02:00
lib.rs stabilize nonnull_provenance 2025-06-09 12:36:24 +02:00
macros.rs fix doc path in std::fmt macro 2025-02-25 09:08:22 +05:30
panic.rs rename internal panicking::try to catch_unwind 2025-05-24 16:32:00 +02:00
panicking.rs rename internal panicking::try to catch_unwind 2025-05-24 16:32:00 +02:00
pat.rs Add pattern types to parser 2024-04-08 11:57:17 +00:00
path.rs Add documentation for PathBuf's FromIterator and Extend impls 2025-06-16 07:49:27 +00:00
process.rs Rollup merge of #141019 - ehuss:android-doctest-xcompile, r=Mark-Simulacrum 2025-05-23 13:34:18 +02:00
random.rs Unify cygwin & horizon random impl 2025-03-10 21:23:32 +08:00
rt.rs deduplicate abort implementations 2025-05-15 11:20:13 +02:00
test_helpers.rs std: get rid of sys_common::io 2025-02-07 16:54:07 +01:00
time.rs Be more specific about the error in the SystemTime example 2025-04-17 11:57:28 -05:00