From: oetiker Date: Sat, 8 Aug 2009 09:28:43 +0000 (+0000) Subject: The current method may have caused flushes (and journal rotations) more X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=commitdiff_plain;h=ff4657f155a7acb054aaa702a7c2f610991bd0e9 The current method may have caused flushes (and journal rotations) more often than necessary. The problem was introduced in r1600. --kevin git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@1881 a5681a0c-68f1-0310-ab6d-d61299d08faa --- diff --git a/src/rrd_daemon.c b/src/rrd_daemon.c index 36701f8..2a35ec2 100644 --- a/src/rrd_daemon.c +++ b/src/rrd_daemon.c @@ -820,14 +820,15 @@ static void *flush_thread_main (void *args __attribute__((unused))) /* {{{ */ || ((now.tv_sec == next_flush.tv_sec) && ((1000 * now.tv_usec) > next_flush.tv_nsec))) { + RRDD_LOG(LOG_DEBUG, "flushing old values"); + + /* Determine the time of the next cache flush. */ + next_flush.tv_sec = now.tv_sec + config_flush_interval; + /* Flush all values that haven't been written in the last * `config_write_interval' seconds. */ flush_old_values (config_write_interval); - /* Determine the time of the next cache flush. */ - next_flush.tv_sec = - now.tv_sec + next_flush.tv_sec % config_flush_interval; - /* unlock the cache while we rotate so we don't block incoming * updates if the fsync() blocks on disk I/O */ pthread_mutex_unlock(&cache_lock);