summaryrefslogtreecommitdiffstats
path: root/crates/runner/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/runner/src/lib.rs')
-rw-r--r--crates/runner/src/lib.rs15
1 files changed, 11 insertions, 4 deletions
diff --git a/crates/runner/src/lib.rs b/crates/runner/src/lib.rs
index 308b54c..bcaa9db 100644
--- a/crates/runner/src/lib.rs
+++ b/crates/runner/src/lib.rs
@@ -17,6 +17,7 @@ use std::{
use capctl::prctl;
use nix::{
errno::Errno,
+ fcntl::Flock,
poll,
sched::CloneFlags,
sys::{
@@ -99,7 +100,13 @@ fn borrow_socket_fd(socket: &UnixSeqpacketConn) -> BorrowedFd<'_> {
unsafe { BorrowedFd::borrow_raw(socket.as_raw_fd()) }
}
-fn runner(uid: Uid, gid: Gid, socket: UnixSeqpacketConn, _lockfile: File, options: &Options) -> ! {
+fn runner(
+ uid: Uid,
+ gid: Gid,
+ socket: UnixSeqpacketConn,
+ _lockfile: Flock<File>,
+ options: &Options,
+) -> ! {
ns::mount_proc();
ns::setup_userns(Uid::from_raw(0), Gid::from_raw(0), uid, gid);
@@ -127,10 +134,10 @@ fn runner(uid: Uid, gid: Gid, socket: UnixSeqpacketConn, _lockfile: File, option
loop {
let socket_fd = borrow_socket_fd(&ctx.socket);
let mut pollfds = [
- poll::PollFd::new(&signal_fd, poll::PollFlags::POLLIN),
- poll::PollFd::new(&socket_fd, poll::PollFlags::POLLIN),
+ poll::PollFd::new(signal_fd.as_fd(), poll::PollFlags::POLLIN),
+ poll::PollFd::new(socket_fd.as_fd(), poll::PollFlags::POLLIN),
];
- poll::poll(&mut pollfds, -1).expect("poll()");
+ poll::poll(&mut pollfds, poll::PollTimeout::NONE).expect("poll()");
let signal_events = pollfds[0]
.revents()