summaryrefslogtreecommitdiff
path: root/cli/signal.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/signal.rs')
-rw-r--r--cli/signal.rs20
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(())
+}