Code

fix flush race in rrdcached -- Christian Hitz
authoroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Mon, 5 Mar 2012 16:49:01 +0000 (16:49 +0000)
committeroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Mon, 5 Mar 2012 16:49:01 +0000 (16:49 +0000)
git-svn-id: svn://svn.oetiker.ch/rrdtool/branches/1.4/program@2282 a5681a0c-68f1-0310-ab6d-d61299d08faa

src/rrd_daemon.c

index 17153ce98be3309f985b885b486e3a0fc7b5fd6d..4dfe35c283dc0189459417f66b2dc8bd5f37a4c9 100644 (file)
@@ -292,7 +292,9 @@ static int handle_request_help (HANDLER_PROTO);
 static void sig_common (const char *sig) /* {{{ */
 {
   RRDD_LOG(LOG_NOTICE, "caught SIG%s", sig);
-  state = FLUSHING;
+  if (state == RUNNING) {
+      state = FLUSHING;
+  }
   pthread_cond_broadcast(&flush_cond);
   pthread_cond_broadcast(&queue_cond);
 } /* }}} void sig_common */