diff options
| author | Dan Gohman <dev@sunfishcode.online> | 2021-08-03 07:31:59 -0500 |
|---|---|---|
| committer | Dan Gohman <dev@sunfishcode.online> | 2021-08-19 12:02:40 -0700 |
| commit | cada5fb336bac35eb34848f8619009dc7aa0f5d0 (patch) | |
| tree | 6a8f571efeacd3391a5d989c06793246b0bcda48 /library/std/src/os/linux/process.rs | |
| parent | 1ae1eeec2589abf742f87ec747acd31990e3b00a (diff) | |
| download | rust-cada5fb336bac35eb34848f8619009dc7aa0f5d0.tar.gz rust-cada5fb336bac35eb34848f8619009dc7aa0f5d0.zip | |
Update PidFd for the new I/O safety APIs.
Diffstat (limited to 'library/std/src/os/linux/process.rs')
| -rw-r--r-- | library/std/src/os/linux/process.rs | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/library/std/src/os/linux/process.rs b/library/std/src/os/linux/process.rs index 6daff0f003c..e3e7143c851 100644 --- a/library/std/src/os/linux/process.rs +++ b/library/std/src/os/linux/process.rs @@ -3,7 +3,7 @@ #![unstable(feature = "linux_pidfd", issue = "82971")] use crate::io::Result; -use crate::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd, RawFd}; +use crate::os::unix::io::{AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, OwnedFd, RawFd}; use crate::process; use crate::sealed::Sealed; #[cfg(not(doc))] @@ -69,19 +69,37 @@ impl IntoInner<FileDesc> for PidFd { impl AsRawFd for PidFd { fn as_raw_fd(&self) -> RawFd { - self.as_inner().raw() + self.as_inner().as_raw_fd() } } impl FromRawFd for PidFd { unsafe fn from_raw_fd(fd: RawFd) -> Self { - Self::from_inner(FileDesc::new(fd)) + Self::from_inner(FileDesc::from_raw_fd(fd)) } } impl IntoRawFd for PidFd { fn into_raw_fd(self) -> RawFd { - self.into_inner().into_raw() + self.into_inner().into_raw_fd() + } +} + +impl AsFd for PidFd { + fn as_fd(&self) -> BorrowedFd<'_> { + self.as_inner().as_fd() + } +} + +impl From<OwnedFd> for PidFd { + fn from(fd: OwnedFd) -> Self { + Self::from_inner(FileDesc::from_inner(fd)) + } +} + +impl From<PidFd> for OwnedFd { + fn from(pid_fd: PidFd) -> Self { + pid_fd.into_inner().into_inner() } } |
