Use isWithinTimespanMs to avoid refererence to NodeDb instance inside of NodeDb (#5453)

This commit is contained in:
Ben Meadors 2024-11-26 16:39:16 -06:00 committed by Tom Fifield
parent 46eb534d76
commit 32f81568aa

View File

@ -1275,10 +1275,14 @@ bool NodeDB::updateUser(uint32_t nodeId, meshtastic_User &p, uint8_t channelInde
powerFSM.trigger(EVENT_NODEDB_UPDATED); powerFSM.trigger(EVENT_NODEDB_UPDATED);
notifyObservers(true); // Force an update whether or not our node counts have changed notifyObservers(true); // Force an update whether or not our node counts have changed
// We just changed something about the user, store our DB // We just changed something about a User,
Throttle::execute( // store our DB unless we just did so less than a minute ago
&lastNodeDbSave, ONE_MINUTE_MS, []() { nodeDB->saveToDisk(SEGMENT_DEVICESTATE); }, if (!Throttle::isWithinTimespanMs(lastNodeDbSave, ONE_MINUTE_MS)) {
[]() { LOG_DEBUG("Defer NodeDB saveToDisk for now"); }); // since we saved less than a minute ago saveToDisk(SEGMENT_DEVICESTATE);
lastNodeDbSave = millis();
} else {
LOG_DEBUG("Defer NodeDB saveToDisk for now");
}
} }
return changed; return changed;