#include "scheduler.h" #include "process.h" /* * Walk through the database list and return the first database which * last update is too far in past */ struct rrd_database *get_outdated_db(struct rrd_database **dblist) { int i; time_t now = time(0); for (i = 0; dblist[i]; i++) { if ((dblist[i]->last_update + dblist[i]->interval) - now <= 0) return dblist[i]; } /* Nothing to update this time, return null */ return NULL; } /* * See how long we may sleep until it is required to run an update * again */ int get_next_update(struct rrd_database **dblist) { int i, sleeptime = 0, diff; time_t now = time(0); for (i = 0; dblist[i]; i++) { diff = dblist[i]->last_update + dblist[i]->interval - now; if (!sleeptime) sleeptime = diff; if (sleeptime > diff) sleeptime = diff; if (sleeptime <= 0) return 0; } return sleeptime; }