diff options
Diffstat (limited to 'crates/runner/src/lib.rs')
-rw-r--r-- | crates/runner/src/lib.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/crates/runner/src/lib.rs b/crates/runner/src/lib.rs index 9ca6c23..cfaf658 100644 --- a/crates/runner/src/lib.rs +++ b/crates/runner/src/lib.rs @@ -19,7 +19,11 @@ use nix::{ errno::Errno, poll, sched::CloneFlags, - sys::{signal, signalfd::SignalFd, stat, wait}, + sys::{ + signal, + signalfd::{SfdFlags, SignalFd}, + stat, wait, + }, unistd::{self, Gid, Pid, Uid}, }; use uds::UnixSeqpacketConn; @@ -113,7 +117,8 @@ fn runner(uid: Uid, gid: Gid, socket: UnixSeqpacketConn, _lockfile: File, option signals.add(signal::Signal::SIGCHLD); signal::pthread_sigmask(signal::SigmaskHow::SIG_BLOCK, Some(&signals), None) .expect("pthread_sigmask()"); - let mut sfd = SignalFd::new(&signals).expect("Failed to create signal file descriptor"); + let mut sfd = SignalFd::with_flags(&signals, SfdFlags::SFD_CLOEXEC) + .expect("Failed to create signal file descriptor"); let mut pollfds = [ poll::PollFd::new(sfd.as_raw_fd(), poll::PollFlags::POLLIN), |