summaryrefslogtreecommitdiff
path: root/src/sys
diff options
context:
space:
mode:
authorPhilipp Matthias Schaefer <philipp.matthias.schaefer@posteo.de>2016-01-09 16:47:26 +0100
committerCarl Lerche <me@carllerche.com>2016-01-18 11:53:10 -0800
commitc2c052f98c67e06fc0b6e8bad7e7b82e44911fe9 (patch)
tree0e63bbaeb4acbc0d15684bdd729481606c88f3bd /src/sys
parente295907ee684c075250b7204e98724cd7484a374 (diff)
downloadnix-c2c052f98c67e06fc0b6e8bad7e7b82e44911fe9.zip
Add POSIX function raise()
Diffstat (limited to 'src/sys')
-rw-r--r--src/sys/signal.rs11
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::*;