diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2023-09-30 20:21:09 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2023-09-30 20:21:09 +0200 |
commit | e77305d3dc7e89474b14f86b180fc0ac51db3678 (patch) | |
tree | 81a25f3ea92fd7b3098f035d6475e5e533094b5c /crates/runner/src/jobserver.rs | |
parent | fbaa41611d2aa30815a3d9d3c214698825bc6896 (diff) | |
download | rebel-e77305d3dc7e89474b14f86b180fc0ac51db3678.tar rebel-e77305d3dc7e89474b14f86b180fc0ac51db3678.zip |
Update dependencies
Diffstat (limited to 'crates/runner/src/jobserver.rs')
-rw-r--r-- | crates/runner/src/jobserver.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/crates/runner/src/jobserver.rs b/crates/runner/src/jobserver.rs index 3b6c856..d4c670c 100644 --- a/crates/runner/src/jobserver.rs +++ b/crates/runner/src/jobserver.rs @@ -1,4 +1,7 @@ -use std::{os::unix::prelude::RawFd, slice}; +use std::{ + os::{fd::BorrowedFd, unix::prelude::RawFd}, + slice, +}; use nix::{errno::Errno, fcntl::OFlag, poll, unistd}; @@ -27,10 +30,14 @@ impl Jobserver { Ok(Jobserver { tokens, r, w }) } + fn read_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.r) } + } + pub fn wait(&mut self) -> u8 { loop { poll::poll( - &mut [poll::PollFd::new(self.r, poll::PollFlags::POLLIN)], + &mut [poll::PollFd::new(&self.read_fd(), poll::PollFlags::POLLIN)], -1, ) .expect("poll()"); |