diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2016-01-17 00:50:40 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2016-01-17 00:50:40 +0900 |
commit | 138459803fcc60af3322d39f857962e22350b010 (patch) | |
tree | b225045b98f281901aa1b3a99484747b2b8173da | |
parent | 451c9ec4c4a89a5ca141e0d22634a9b89620ff9c (diff) | |
download | poe-138459803fcc60af3322d39f857962e22350b010.tar.gz |
sandbox: move sig*
-rw-r--r-- | sandbox/sandbox.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/sandbox/sandbox.c b/sandbox/sandbox.c index c8043d7..36c4e82 100644 --- a/sandbox/sandbox.c +++ b/sandbox/sandbox.c @@ -241,13 +241,6 @@ main(int argc, char *argv[]) const char *prog = copy_program(root, argv[3]); char **cmdl = construct_cmdl(argc - 4, argv + 4, prog); - sigset_t mask, omask; - sigemptyset(&mask); - sigaddset(&mask, SIGCHLD); - sigaddset(&mask, SIGINT); // auau - sigaddset(&mask, SIGTERM); // auau - sigprocmask(SIG_BLOCK, &mask, &omask); - int stdout_fd[2], stderr_fd[2]; NONNEGATIVE(pipe2(stdout_fd, O_DIRECT)); NONNEGATIVE(pipe2(stderr_fd, O_DIRECT)); @@ -264,7 +257,6 @@ main(int argc, char *argv[]) close(stderr_fd[0]); close(stderr_fd[1]); - sigprocmask(SIG_SETMASK, &omask, NULL); child(root, cmdl); } else { sd_event *event = NULL; @@ -280,6 +272,13 @@ main(int argc, char *argv[]) NONNEGATIVE(fflags); NONNEGATIVE(fcntl(stderr_fd[0], F_SETFL, fflags | O_NONBLOCK)); + sigset_t mask; + sigemptyset(&mask); + sigaddset(&mask, SIGCHLD); + sigaddset(&mask, SIGINT); + sigaddset(&mask, SIGTERM); + sigprocmask(SIG_BLOCK, &mask, NULL); + NONNEGATIVE(sd_event_default(&event)); NONNEGATIVE(sd_event_add_signal(event, NULL, SIGCHLD, sigchld_handler, &pid)); NONNEGATIVE(sd_event_add_signal(event, NULL, SIGINT, sigint_handler, &pid)); |