diff options
author | Philipp Matthias Schaefer <philipp.matthias.schaefer@posteo.de> | 2016-01-09 16:47:26 +0100 |
---|---|---|
committer | Carl Lerche <me@carllerche.com> | 2016-01-18 11:53:10 -0800 |
commit | c2c052f98c67e06fc0b6e8bad7e7b82e44911fe9 (patch) | |
tree | 0e63bbaeb4acbc0d15684bdd729481606c88f3bd | |
parent | e295907ee684c075250b7204e98724cd7484a374 (diff) | |
download | nix-c2c052f98c67e06fc0b6e8bad7e7b82e44911fe9.zip |
Add POSIX function raise()
-rw-r--r-- | src/sys/signal.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/sys/signal.rs b/src/sys/signal.rs index 23fd2076..93b63196 100644 --- a/src/sys/signal.rs +++ b/src/sys/signal.rs @@ -372,6 +372,7 @@ mod ffi { pub fn pthread_sigmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t) -> c_int; pub fn kill(pid: pid_t, signum: c_int) -> c_int; + pub fn raise(signum: c_int) -> c_int; } } @@ -541,6 +542,16 @@ pub fn kill(pid: libc::pid_t, signum: SigNum) -> Result<()> { Ok(()) } +pub fn raise(signum: SigNum) -> Result<()> { + let res = unsafe { ffi::raise(signum) }; + + if res < 0 { + return Err(Error::Sys(Errno::last())); + } + + Ok(()) +} + #[cfg(test)] mod tests { use super::*; |