diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/linux.rs | 13 | ||||
-rw-r--r-- | src/plugin/mod.rs | 10 |
2 files changed, 9 insertions, 14 deletions
diff --git a/src/linux.rs b/src/linux.rs index 8d4a4ae..58a0e10 100644 --- a/src/linux.rs +++ b/src/linux.rs @@ -1432,16 +1432,15 @@ fn run_control( .set_raw_mode() .expect("failed to set terminal raw mode"); - let poll_ctx = PollContext::new().map_err(Error::CreatePollContext)?; - poll_ctx - .add(&linux.exit_evt, Token::Exit) - .map_err(Error::PollContextAdd)?; + let poll_ctx = PollContext::build_with(&[ + (&linux.exit_evt, Token::Exit), + (&sigchld_fd, Token::ChildSignal), + ]) + .map_err(Error::PollContextAdd)?; + if let Err(e) = poll_ctx.add(&stdin_handle, Token::Stdin) { warn!("failed to add stdin to poll context: {}", e); } - poll_ctx - .add(&sigchld_fd, Token::ChildSignal) - .map_err(Error::PollContextAdd)?; if let Some(socket_server) = &control_server_socket { poll_ctx diff --git a/src/plugin/mod.rs b/src/plugin/mod.rs index cf8332a..3b6d82b 100644 --- a/src/plugin/mod.rs +++ b/src/plugin/mod.rs @@ -624,13 +624,9 @@ pub fn run_config(cfg: Config) -> Result<()> { let kill_signaled = Arc::new(AtomicBool::new(false)); let mut vcpu_handles = Vec::with_capacity(vcpu_count as usize); - let poll_ctx = PollContext::new().map_err(Error::CreatePollContext)?; - poll_ctx - .add(&exit_evt, Token::Exit) - .map_err(Error::PollContextAdd)?; - poll_ctx - .add(&sigchld_fd, Token::ChildSignal) - .map_err(Error::PollContextAdd)?; + let poll_ctx = + PollContext::build_with(&[(&exit_evt, Token::Exit), (&sigchld_fd, Token::ChildSignal)]) + .map_err(Error::PollContextAdd)?; let mut sockets_to_drop = Vec::new(); let mut redo_poll_ctx_sockets = true; |