if ((cache_timeout > 0) &&
((cdtime() - cache_flush_last) > cache_flush_timeout))
- rrd_cache_flush(cache_timeout);
+ rrd_cache_flush(cache_timeout + random_timeout);
pthread_mutex_unlock(&cache_lock);
}
cache_timeout = DOUBLE_TO_CDTIME_T(tmp);
} else if (strcasecmp("CacheFlush", key) == 0) {
- int tmp = atoi(value);
+ double tmp = atof(value);
if (tmp < 0) {
fprintf(stderr, "rrdtool: `CacheFlush' must "
"be greater than 0.\n");
"be greater than 0.\n");
return (1);
}
- cache_flush_timeout = TIME_T_TO_CDTIME_T(tmp);
+ cache_flush_timeout = DOUBLE_TO_CDTIME_T(tmp);
} else if (strcasecmp("DataDir", key) == 0) {
char *tmp;
size_t len;
random_timeout = 0;
cache_flush_timeout = 0;
} else if (cache_flush_timeout < cache_timeout) {
- INFO("rrdtool plugin: \"CacheFlush %u\" is less than \"CacheTimeout %u\". "
- "Ajusting \"CacheFlush\" to %u seconds.",
- (unsigned int)CDTIME_T_TO_TIME_T(cache_flush_timeout),
- (unsigned int)CDTIME_T_TO_TIME_T(cache_timeout),
- (unsigned int)CDTIME_T_TO_TIME_T(cache_timeout * 10));
+ INFO("rrdtool plugin: \"CacheFlush %.3f\" is less than \"CacheTimeout %.3f\". "
+ "Ajusting \"CacheFlush\" to %.3f seconds.",
+ CDTIME_T_TO_DOUBLE(cache_flush_timeout),
+ CDTIME_T_TO_DOUBLE(cache_timeout),
+ CDTIME_T_TO_DOUBLE(cache_timeout * 10));
cache_flush_timeout = 10 * cache_timeout;
}
pthread_mutex_unlock(&cache_lock);
- status = plugin_thread_create(&queue_thread, /* attr = */ NULL,
- rrd_queue_thread, /* args = */ NULL);
+ status =
+ plugin_thread_create(&queue_thread, /* attr = */ NULL, rrd_queue_thread,
+ /* args = */ NULL, "rrdtool queue");
if (status != 0) {
ERROR("rrdtool plugin: Cannot create queue-thread.");
return (-1);