]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
Don't finalise from signal handler
authorMiroslav Lichvar <mlichvar@redhat.com>
Wed, 29 Apr 2009 11:53:02 +0000 (13:53 +0200)
committerMiroslav Lichvar <mlichvar@redhat.com>
Wed, 29 Apr 2009 11:53:02 +0000 (13:53 +0200)
main.c
sched.c

diff --git a/main.c b/main.c
index bd406522424b86fdd0e3ec78da9f7b310f5503cb..42f44f74d085210c368613e7ee96c7825df82b98 100644 (file)
--- a/main.c
+++ b/main.c
@@ -123,7 +123,8 @@ static void
 signal_cleanup(int x)
 {
   LOG(LOGS_WARN, LOGF_Main, "chronyd exiting on signal");
-  MAI_CleanupAndExit();
+  if (!initialised) exit(0);
+  SCH_QuitProgram();
 }
 
 /* ================================================== */
diff --git a/sched.c b/sched.c
index 3b0c711e8d24e2e434eae2ce465089cb2540663a..56505174c317f6ea9dc889399eeefc1f4fd32f3e 100644 (file)
--- a/sched.c
+++ b/sched.c
@@ -558,7 +558,8 @@ SCH_MainLoop(void)
     status = select(one_highest_fd, &rd, &wr, &ex, ptv);
 
     if (status < 0) {
-      CROAK("Status < 0 after select");
+      if (!need_to_exit)
+        CROAK("Status < 0 after select");
     } else if (status > 0) {
       /* A file descriptor is ready to read */