Author: metze
Date: 2006-03-27 12:32:42 +0000 (Mon, 27 Mar 2006)
New Revision: 14744

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=14744

Log:
allow ./timelimit 5 ./timelimit 20 ./ignore_all_signals
to work,

this is needed when we enable samba3's make test
in the build-farm

metze
Modified:
   branches/SAMBA_3_0/source/script/tests/timelimit.c


Changeset:
Modified: branches/SAMBA_3_0/source/script/tests/timelimit.c
===================================================================
--- branches/SAMBA_3_0/source/script/tests/timelimit.c  2006-03-27 02:51:25 UTC 
(rev 14743)
+++ branches/SAMBA_3_0/source/script/tests/timelimit.c  2006-03-27 12:32:42 UTC 
(rev 14744)
@@ -22,17 +22,25 @@
        printf("   SIGTERM - passes SIGTERM to command's process group and 
exit(0)\n");
 }
 
-static void sig_alrm(int sig)
+static void sig_alrm_kill(int sig)
 {
        fprintf(stderr, "\nMaximum time expired in timelimit - killing\n");
        kill(-child_pid, SIGKILL);
        exit(1);
 }
 
+static void sig_alrm_term(int sig)
+{
+       kill(-child_pid, SIGTERM);
+       alarm(5);
+       signal(SIGALRM, sig_alrm_kill);
+}
+
 static void sig_term(int sig)
 {
        kill(-child_pid, SIGTERM);
-       exit(0);
+       alarm(1);
+       signal(SIGALRM, sig_alrm_kill);
 }
 
 static void sig_usr1(int sig)
@@ -78,7 +86,7 @@
 
        signal(SIGTERM, sig_term);
        signal(SIGUSR1, sig_usr1);
-       signal(SIGALRM, sig_alrm);
+       signal(SIGALRM, sig_alrm_term);
        alarm(maxtime);
 
        do {

Reply via email to