From 1d4b92ac85d8c850270ca859f928404c72c0a49a Mon Sep 17 00:00:00 2001 From: "Kevin (Kun) \"Kassimo\" Qian" Date: Sun, 21 Apr 2019 18:26:56 -0700 Subject: Add Deno.kill(pid, signo) and process.kill(signo) (Unix only) (#2177) --- cli/signal.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 cli/signal.rs (limited to 'cli/signal.rs') diff --git a/cli/signal.rs b/cli/signal.rs new file mode 100644 index 000000000..7d67ba743 --- /dev/null +++ b/cli/signal.rs @@ -0,0 +1,20 @@ +#[cfg(unix)] +use nix::sys::signal::{kill as unix_kill, Signal}; +#[cfg(unix)] +use nix::unistd::Pid; + +use crate::errors::DenoResult; + +#[cfg(unix)] +pub fn kill(pid: i32, signo: i32) -> DenoResult<()> { + use crate::errors::DenoError; + let sig = Signal::from_c_int(signo)?; + unix_kill(Pid::from_raw(pid), Option::Some(sig)).map_err(DenoError::from) +} + +#[cfg(not(unix))] +pub fn kill(_pid: i32, _signal: i32) -> DenoResult<()> { + // NOOP + // TODO: implement this for windows + Ok(()) +} -- cgit v1.2.3