From: Enrico Scholz Date: Tue, 30 Mar 2004 16:10:08 +0000 (+0000) Subject: use sigaction() instead of signal() to remove SA_RESTART flag explicitly X-Git-Tag: VERSION_0_10~181 X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3520913216e675d1b7e1dea1c72f47cadd5e6a3d;p=util-vserver.git use sigaction() instead of signal() to remove SA_RESTART flag explicitly git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1394 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- diff --git a/util-vserver/src/vshelper-sync.c b/util-vserver/src/vshelper-sync.c index cf987de..91bc8fc 100644 --- a/util-vserver/src/vshelper-sync.c +++ b/util-vserver/src/vshelper-sync.c @@ -59,8 +59,13 @@ void alarmHandler(int UNUSED sig) int main(int argc, char *argv[]) { - int fd; - int idx = 1; + int fd; + int idx = 1; + struct sigaction act = { + .sa_handler = alarmHandler, + .sa_flags = SA_ONESHOT, + }; + sigfillset(&act.sa_mask); if (argc>=2) { if (strcmp(argv[1], "--help") ==0) showHelp(1, argv[0], 0); @@ -74,7 +79,10 @@ int main(int argc, char *argv[]) } - signal(SIGALRM, alarmHandler); + if (sigaction(SIGALRM, &act, 0)==-1) { + perror("vshelper-sync: sigaction()"); + return EXIT_FAILURE; + } alarm(atoi(argv[idx+1])); fd = open(argv[idx], O_RDONLY,0); @@ -96,4 +104,4 @@ int main(int argc, char *argv[]) } return EXIT_SUCCESS; -} + }