diff options
author | Kevin (Kun) "Kassimo" Qian <kevinkassimo@gmail.com> | 2019-04-21 18:26:56 -0700 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2019-04-21 21:26:56 -0400 |
commit | 1d4b92ac85d8c850270ca859f928404c72c0a49a (patch) | |
tree | 2f45ea65a3a3c5879fe7b16cacfd5624d86764cd /cli/signal.rs | |
parent | 9dfebbc9496138efbeedc431068f41662c780f3e (diff) |
Add Deno.kill(pid, signo) and process.kill(signo) (Unix only) (#2177)
Diffstat (limited to 'cli/signal.rs')
-rw-r--r-- | cli/signal.rs | 20 |
1 files changed, 20 insertions, 0 deletions
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(()) +} |