Fix signal testcase and a bug in sig_set
This commit is contained in:
parent
c7e225a4eb
commit
c43fbfea7f
@ -34,7 +34,7 @@ impl SigSet {
|
||||
}
|
||||
|
||||
pub fn empty(&self) -> bool {
|
||||
self.bits != 0
|
||||
self.bits == 0
|
||||
}
|
||||
|
||||
pub fn full(&self) -> bool {
|
||||
|
@ -112,6 +112,8 @@ static void handle_sigio(int num, siginfo_t *info, void *context) {
|
||||
|
||||
int test_raise() {
|
||||
struct sigaction new_action, old_action;
|
||||
memset(&new_action, 0, sizeof(struct sigaction));
|
||||
memset(&old_action, 0, sizeof(struct sigaction));
|
||||
new_action.sa_sigaction = handle_sigio;
|
||||
new_action.sa_flags = SA_SIGINFO | SA_NODEFER;
|
||||
if (sigaction(SIGIO, &new_action, &old_action) < 0) {
|
||||
@ -236,6 +238,8 @@ int test_handle_sigfpe() {
|
||||
#else
|
||||
// Set up a signal handler that handles divide-by-zero exception
|
||||
struct sigaction new_action, old_action;
|
||||
memset(&new_action, 0, sizeof(struct sigaction));
|
||||
memset(&old_action, 0, sizeof(struct sigaction));
|
||||
new_action.sa_sigaction = handle_sigfpe;
|
||||
new_action.sa_flags = SA_SIGINFO;
|
||||
if (sigaction(SIGFPE, &new_action, &old_action) < 0) {
|
||||
@ -290,6 +294,8 @@ int test_handle_sigsegv() {
|
||||
#else
|
||||
// Set up a signal handler that handles divide-by-zero exception
|
||||
struct sigaction new_action, old_action;
|
||||
memset(&new_action, 0, sizeof(struct sigaction));
|
||||
memset(&old_action, 0, sizeof(struct sigaction));
|
||||
new_action.sa_sigaction = handle_sigsegv;
|
||||
new_action.sa_flags = SA_SIGINFO;
|
||||
if (sigaction(SIGSEGV, &new_action, &old_action) < 0) {
|
||||
@ -357,6 +363,8 @@ int test_sigaltstack() {
|
||||
}
|
||||
|
||||
struct sigaction new_action, old_action;
|
||||
memset(&new_action, 0, sizeof(struct sigaction));
|
||||
memset(&old_action, 0, sizeof(struct sigaction));
|
||||
new_action.sa_sigaction = handle_sigpipe;
|
||||
new_action.sa_flags = SA_SIGINFO | SA_NODEFER | SA_ONSTACK;
|
||||
if (sigaction(SIGPIPE, &new_action, &old_action) < 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user