summaryrefslogtreecommitdiffstats
path: root/database
diff options
context:
space:
mode:
Diffstat (limited to 'database')
-rw-r--r--database/rrd.h2
-rw-r--r--database/rrdset.c7
2 files changed, 6 insertions, 3 deletions
diff --git a/database/rrd.h b/database/rrd.h
index dda3e5f9a2..acd0032d47 100644
--- a/database/rrd.h
+++ b/database/rrd.h
@@ -1253,7 +1253,7 @@ void rrdset_next_usec(RRDSET *st, usec_t microseconds);
void rrdset_timed_next(RRDSET *st, struct timeval now, usec_t microseconds);
#define rrdset_next(st) rrdset_next_usec(st, 0ULL)
-void rrdset_timed_done(RRDSET *st, struct timeval now);
+void rrdset_timed_done(RRDSET *st, struct timeval now, bool pending_rrdset_next);
void rrdset_done(RRDSET *st);
void rrdset_is_obsolete(RRDSET *st);
diff --git a/database/rrdset.c b/database/rrdset.c
index d69c830bb1..fcfba94273 100644
--- a/database/rrdset.c
+++ b/database/rrdset.c
@@ -1386,12 +1386,15 @@ void rrdset_done(RRDSET *st) {
struct timeval now;
now_realtime_timeval(&now);
- rrdset_timed_done(st, now);
+ rrdset_timed_done(st, now, /* pending_rrdset_next = */ st->counter_done != 0);
}
-void rrdset_timed_done(RRDSET *st, struct timeval now) {
+void rrdset_timed_done(RRDSET *st, struct timeval now, bool pending_rrdset_next) {
if(unlikely(netdata_exit)) return;
+ if (pending_rrdset_next)
+ rrdset_next(st);
+
debug(D_RRD_CALLS, "rrdset_done() for chart '%s'", rrdset_name(st));
RRDDIM *rd;