From 03f5dc538b5d342081b16eec31ed0e2375420053 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Mon, 20 Mar 2000 12:57:34 -0800 Subject: [PATCH] make watchdog exit more quitly, helps profiling.. Rev: bin/test_pike.pike:1.38 --- bin/test_pike.pike | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/bin/test_pike.pike b/bin/test_pike.pike index 43d76fc72e..237f42195d 100755 --- a/bin/test_pike.pike +++ b/bin/test_pike.pike @@ -1,6 +1,6 @@ #!/usr/local/bin/pike -/* $Id: test_pike.pike,v 1.37 2000/03/07 08:14:57 hubbe Exp $ */ +/* $Id: test_pike.pike,v 1.38 2000/03/20 20:57:34 hubbe Exp $ */ import Stdio; @@ -181,9 +181,9 @@ int main(int argc, string *argv) while(1) { sleep(10); - if(exit_quietly) exit(0); + if(exit_quietly) _exit(0); #ifndef __NT__ - if(!kill(pid, 0)) exit(0); + if(!kill(pid, 0)) _exit(0); #endif // werror("[WATCHDOG] t=%d\n",time()-last_time); @@ -192,12 +192,12 @@ int main(int argc, string *argv) { werror("\n[WATCHDOG] Pike testsuite timeout, sending SIGABRT.\n"); kill(pid, signum("SIGABRT")); - for(int q=0;q<60;q++) if(!kill(pid,0)) exit(0); else sleep(1); + for(int q=0;q<60;q++) if(!kill(pid,0)) _exit(0); else sleep(1); werror("\n" "[WATCHDOG] This is your friendly watchdog again...\n" "[WATCHDOG] testsuite failed to die from SIGABRT, sending SIGKILL\n"); kill(pid, signum("SIGKILL")); - for(int q=0;q<60;q++) if(!kill(pid,0)) exit(0); else sleep(1); + for(int q=0;q<60;q++) if(!kill(pid,0)) _exit(0); else sleep(1); werror("\n" "[WATCHDOG] This is your friendly watchdog AGAIN...\n" "[WATCHDOG] SIGKILL, SIGKILL, SIGKILL, DIE!\n"); @@ -205,14 +205,14 @@ int main(int argc, string *argv) kill(pid, signum("SIGKILL")); kill(pid, signum("SIGKILL")); kill(pid, signum("SIGKILL")); - for(int q=0;q<60;q++) if(!kill(pid,0)) exit(0); else sleep(1); + for(int q=0;q<60;q++) if(!kill(pid,0)) _exit(0); else sleep(1); werror("\n" "[WATCHDOG] Giving up, must be a device wait.. :(\n"); - exit(0); + _exit(0); } } #else - exit(1); + _exit(1); #endif break; @@ -641,7 +641,21 @@ int main(int argc, string *argv) #ifdef WATCHDOG_SIGNAL if(use_watchdog) + { watchdog->kill(signum("SIGKILL")); + watchdog->wait(); + } +#endif + +#ifdef WATCHDOG_PIPE + if(use_watchdog) + { + destruct(watchdog_pipe); +#if constant(signum) + catch { watchdog->kill(signum("SIGKILL")); }; +#endif + watchdog->wait(); + } #endif return errors; -- GitLab