Skip to content

Commit

Permalink
Add the remainder of POSIX signals (plus WINCH and IO)
Browse files Browse the repository at this point in the history
I did a quick check against OS X and OpenBSD. SIGPOLL is supposed to be part of
POSIX.1-2008, with the note that it might be removed in the future, and isn't
in either of those OSes, so removed that. SIGWINCH and SIGIO seem pretty
popular, so did include those (they are in the rust libc crate).

Refs:
http:https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/signal.h.html
http:https://man.openbsd.org/sigaction.2
https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man3/signal.3.html
  • Loading branch information
bnewbold committed Oct 8, 2016
1 parent 697c6dc commit bc3ab7a
Showing 1 changed file with 72 additions and 0 deletions.
72 changes: 72 additions & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -123,8 +123,16 @@ use std::thread;
use bit_set::BitSet;
use chan::Sender;
use libc::{
// POSIX.1-2008, minus SIGPOLL (not in some BSD, use SIGIO)
SIGHUP, SIGINT, SIGQUIT, SIGILL, SIGABRT, SIGFPE, SIGKILL,
SIGSEGV, SIGPIPE, SIGALRM, SIGTERM, SIGUSR1, SIGUSR2,
SIGCHLD, SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU,
SIGBUS, SIGPROF, SIGSYS, SIGTRAP, SIGURG, SIGVTALRM,
SIGXCPU, SIGXFSZ,

// Common Extensions (SIGINFO and SIGEMT not in libc)
SIGIO,
SIGWINCH,
};
use libc::kill;
use libc::getpid;
Expand Down Expand Up @@ -243,6 +251,22 @@ pub enum Signal {
TERM,
USR1,
USR2,
CHLD,
CONT,
STOP,
TSTP,
TTIN,
TTOU,
BUS,
PROF,
SYS,
TRAP,
URG,
VTALRM,
XCPU,
XFSZ,
IO,
WINCH,
#[doc(hidden)]
__NonExhaustiveMatch,
}
Expand All @@ -263,6 +287,22 @@ impl Signal {
SIGTERM => Signal::TERM,
SIGUSR1 => Signal::USR1,
SIGUSR2 => Signal::USR2,
SIGCHLD => Signal::CHLD,
SIGCONT => Signal::CONT,
SIGSTOP => Signal::STOP,
SIGTSTP => Signal::TSTP,
SIGTTIN => Signal::TTIN,
SIGTTOU => Signal::TTOU,
SIGBUS => Signal::BUS,
SIGPROF => Signal::PROF,
SIGSYS => Signal::SYS,
SIGTRAP => Signal::TRAP,
SIGURG => Signal::URG,
SIGVTALRM => Signal::VTALRM,
SIGXCPU => Signal::XCPU,
SIGXFSZ => Signal::XFSZ,
SIGIO => Signal::IO,
SIGWINCH => Signal::WINCH,
sig => panic!("unsupported signal number: {}", sig),
}
}
Expand All @@ -282,6 +322,22 @@ impl Signal {
Signal::TERM => SIGTERM,
Signal::USR1 => SIGUSR1,
Signal::USR2 => SIGUSR2,
Signal::CHLD => SIGCHLD,
Signal::CONT => SIGCONT,
Signal::STOP => SIGSTOP,
Signal::TSTP => SIGTSTP,
Signal::TTIN => SIGTTIN,
Signal::TTOU => SIGTTOU,
Signal::BUS => SIGBUS,
Signal::PROF => SIGPROF,
Signal::SYS => SIGSYS,
Signal::TRAP => SIGTRAP,
Signal::URG => SIGURG,
Signal::VTALRM => SIGVTALRM,
Signal::XCPU => SIGXCPU,
Signal::XFSZ => SIGXFSZ,
Signal::IO => SIGIO,
Signal::WINCH => SIGWINCH,
Signal::__NonExhaustiveMatch => unreachable!(),
}
}
Expand Down Expand Up @@ -314,6 +370,22 @@ impl SigSet {
set.add(SIGTERM).unwrap();
set.add(SIGUSR1).unwrap();
set.add(SIGUSR2).unwrap();
set.add(SIGCHLD).unwrap();
set.add(SIGCONT).unwrap();
set.add(SIGSTOP).unwrap();
set.add(SIGTSTP).unwrap();
set.add(SIGTTIN).unwrap();
set.add(SIGTTOU).unwrap();
set.add(SIGBUS).unwrap();
set.add(SIGPROF).unwrap();
set.add(SIGSYS).unwrap();
set.add(SIGTRAP).unwrap();
set.add(SIGURG).unwrap();
set.add(SIGVTALRM,).unwrap();
set.add(SIGXCPU).unwrap();
set.add(SIGXFSZ).unwrap();
set.add(SIGIO).unwrap();
set.add(SIGWINCH).unwrap();
set
}

Expand Down

0 comments on commit bc3ab7a

Please sign in to comment.