diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-03-17 08:29:08 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-03-17 08:29:08 +0000 |
commit | 3f165fa5b3b38fa4b321be94a97f06927f636fb1 (patch) | |
tree | d5e2d1045e714823c2e9a3ef912dcafeffcc9ebd /init/init.c | |
parent | 8e2cfec1cdf34068f2378aae9fe8f5ec0f821e21 (diff) | |
download | busybox-w32-3f165fa5b3b38fa4b321be94a97f06927f636fb1.tar.gz busybox-w32-3f165fa5b3b38fa4b321be94a97f06927f636fb1.tar.bz2 busybox-w32-3f165fa5b3b38fa4b321be94a97f06927f636fb1.zip |
libbb: introduce and use sigprocmask_allsigs and sigaction_set.
libbb: rename sig_pause to wait_for_any_sig.
Diffstat (limited to 'init/init.c')
-rw-r--r-- | init/init.c | 31 |
1 files changed, 2 insertions, 29 deletions
diff --git a/init/init.c b/init/init.c index 13410ac39..1145c0490 100644 --- a/init/init.c +++ b/init/init.c | |||
@@ -526,27 +526,13 @@ static void init_reboot(unsigned long magic) | |||
526 | 526 | ||
527 | static void kill_all_processes(void) | 527 | static void kill_all_processes(void) |
528 | { | 528 | { |
529 | sigset_t block_signals; | ||
530 | |||
531 | /* run everything to be run at "shutdown". This is done _prior_ | 529 | /* run everything to be run at "shutdown". This is done _prior_ |
532 | * to killing everything, in case people wish to use scripts to | 530 | * to killing everything, in case people wish to use scripts to |
533 | * shut things down gracefully... */ | 531 | * shut things down gracefully... */ |
534 | run_actions(SHUTDOWN); | 532 | run_actions(SHUTDOWN); |
535 | 533 | ||
536 | /* first disable all our signals */ | 534 | /* first disable all our signals */ |
537 | sigfillset(&block_signals); | 535 | sigprocmask_allsigs(SIG_BLOCK); |
538 | /*sigemptyset(&block_signals); | ||
539 | sigaddset(&block_signals, SIGHUP); | ||
540 | sigaddset(&block_signals, SIGQUIT); | ||
541 | sigaddset(&block_signals, SIGCHLD); | ||
542 | sigaddset(&block_signals, SIGUSR1); | ||
543 | sigaddset(&block_signals, SIGUSR2); | ||
544 | sigaddset(&block_signals, SIGINT); | ||
545 | sigaddset(&block_signals, SIGTERM); | ||
546 | sigaddset(&block_signals, SIGCONT); | ||
547 | sigaddset(&block_signals, SIGSTOP); | ||
548 | sigaddset(&block_signals, SIGTSTP);*/ | ||
549 | sigprocmask(SIG_BLOCK, &block_signals, NULL); | ||
550 | 536 | ||
551 | message(L_CONSOLE | L_LOG, "The system is going down NOW!"); | 537 | message(L_CONSOLE | L_LOG, "The system is going down NOW!"); |
552 | 538 | ||
@@ -593,26 +579,13 @@ static void halt_reboot_pwoff(int sig) | |||
593 | static void exec_restart_action(int sig ATTRIBUTE_UNUSED) | 579 | static void exec_restart_action(int sig ATTRIBUTE_UNUSED) |
594 | { | 580 | { |
595 | struct init_action *a; | 581 | struct init_action *a; |
596 | sigset_t unblock_signals; | ||
597 | 582 | ||
598 | for (a = init_action_list; a; a = a->next) { | 583 | for (a = init_action_list; a; a = a->next) { |
599 | if (a->action_type & RESTART) { | 584 | if (a->action_type & RESTART) { |
600 | kill_all_processes(); | 585 | kill_all_processes(); |
601 | 586 | ||
602 | /* unblock all signals (blocked in kill_all_processes()) */ | 587 | /* unblock all signals (blocked in kill_all_processes()) */ |
603 | sigfillset(&unblock_signals); | 588 | sigprocmask_allsigs(SIG_UNBLOCK); |
604 | /*sigemptyset(&unblock_signals); | ||
605 | sigaddset(&unblock_signals, SIGHUP); | ||
606 | sigaddset(&unblock_signals, SIGQUIT); | ||
607 | sigaddset(&unblock_signals, SIGCHLD); | ||
608 | sigaddset(&unblock_signals, SIGUSR1); | ||
609 | sigaddset(&unblock_signals, SIGUSR2); | ||
610 | sigaddset(&unblock_signals, SIGINT); | ||
611 | sigaddset(&unblock_signals, SIGTERM); | ||
612 | sigaddset(&unblock_signals, SIGCONT); | ||
613 | sigaddset(&unblock_signals, SIGSTOP); | ||
614 | sigaddset(&unblock_signals, SIGTSTP);*/ | ||
615 | sigprocmask(SIG_UNBLOCK, &unblock_signals, NULL); | ||
616 | 589 | ||
617 | /* Open the new terminal device */ | 590 | /* Open the new terminal device */ |
618 | open_stdio_to_tty(a->terminal, 0 /* - halt if open fails */); | 591 | open_stdio_to_tty(a->terminal, 0 /* - halt if open fails */); |