diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/sys/signal.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/sys/signal.rs b/src/sys/signal.rs index d8d7c088..ec5461e7 100644 --- a/src/sys/signal.rs +++ b/src/sys/signal.rs @@ -284,6 +284,8 @@ mod ffi { pub fn sigaddset(set: *mut sigset_t, signum: libc::c_int) -> libc::c_int; pub fn sigdelset(set: *mut sigset_t, signum: libc::c_int) -> libc::c_int; pub fn sigemptyset(set: *mut sigset_t) -> libc::c_int; + + pub fn kill(pid: libc::pid_t, signum: libc::c_int) -> libc::c_int; } } @@ -352,3 +354,13 @@ pub fn sigaction(signum: SigNum, sigaction: &SigAction) -> SysResult<SigAction> Ok(SigAction { sigaction: oldact }) } + +pub fn kill(pid: libc::pid_t, signum: SigNum) -> SysResult<()> { + let res = unsafe { ffi::kill(pid, signum) }; + + if res < 0 { + return Err(SysError::last()); + } + + Ok(()) +} |