#include "block.h" #include "util.h" #include "any_log.h" void block_update(block_t *block) { if (block->update_cb != NULL) { struct timespec now, diff; timespec_get(&now, TIME_UTC); diff = timespec_diff(block->update_last, now); if (timespec_greater(diff, block->update_interval)) { log_value_debug("Updating block", "s:label", block->label); block->update_cb(block); block->update_last = now; } } if (block->type == BLOCK_GROUP) { for (int i = 0; i < block->group.n_children; i++) block_update(&block->group.children[i]); } }