diff options
| author | Dan Gohman <dev@sunfishcode.online> | 2022-05-19 06:41:35 -0700 |
|---|---|---|
| committer | Dan Gohman <dev@sunfishcode.online> | 2022-06-15 08:52:42 -0700 |
| commit | eb37bbcebc3f6d0981eef892817f3a4570e35907 (patch) | |
| tree | c99237a936396e781fc985c959cb59098816d822 /library/std/src/os/windows | |
| parent | a4cec9742b7e05c33c84cd75002cd56762f7e33b (diff) | |
| download | rust-eb37bbcebc3f6d0981eef892817f3a4570e35907.tar.gz rust-eb37bbcebc3f6d0981eef892817f3a4570e35907.zip | |
Document that `BorrowedFd` may be used to do a `dup`.
Diffstat (limited to 'library/std/src/os/windows')
| -rw-r--r-- | library/std/src/os/windows/io/handle.rs | 6 | ||||
| -rw-r--r-- | library/std/src/os/windows/io/mod.rs | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/library/std/src/os/windows/io/handle.rs b/library/std/src/os/windows/io/handle.rs index 2f7c07c7910..91b886c0888 100644 --- a/library/std/src/os/windows/io/handle.rs +++ b/library/std/src/os/windows/io/handle.rs @@ -189,7 +189,7 @@ impl OwnedHandle { access: c::DWORD, inherit: bool, options: c::DWORD, - ) -> io::Result<Self> { + ) -> io::Result<OwnedHandle> { let handle = self.as_raw_handle(); // `Stdin`, `Stdout`, and `Stderr` can all hold null handles, such as @@ -197,7 +197,7 @@ impl OwnedHandle { // if we passed it a null handle, but we can treat null as a valid // handle which doesn't do any I/O, and allow it to be duplicated. if handle.is_null() { - return unsafe { Ok(Self::from_raw_handle(handle)) }; + return unsafe { Ok(OwnedHandle::from_raw_handle(handle)) }; } let mut ret = ptr::null_mut(); @@ -213,7 +213,7 @@ impl OwnedHandle { options, ) })?; - unsafe { Ok(Self::from_raw_handle(ret)) } + unsafe { Ok(OwnedHandle::from_raw_handle(ret)) } } } diff --git a/library/std/src/os/windows/io/mod.rs b/library/std/src/os/windows/io/mod.rs index 31545059707..e2a401fb696 100644 --- a/library/std/src/os/windows/io/mod.rs +++ b/library/std/src/os/windows/io/mod.rs @@ -36,6 +36,12 @@ //! dynamic lifetime of the resource without ending the lifetime of the //! handle or socket. //! +//! `BorrowedHandle` and `BorrowedSocket` values may be used in APIs which +//! provide safe access to `DuplicateHandle` and `WSADuplicateSocketW` and +//! related functions, so types implementing `AsHandle`, `AsSocket`, +//! `From<OwnedHandle>`, or `From<OwnedSocket>` should not assume they always +//! have exclusive access to the underlying object. +//! //! Like boxes, `OwnedHandle` and `OwnedSocket` values conceptually own the //! resource they point to, and free (close) it when they are dropped. //! |
