diff --git a/repos/os/src/init/state_reporter.h b/repos/os/src/init/state_reporter.h index 4b22e16b9c..4739ab9c35 100644 --- a/repos/os/src/init/state_reporter.h +++ b/repos/os/src/init/state_reporter.h @@ -116,17 +116,24 @@ class Init::State_reporter : public Report_update_trigger _reporter->enabled(false); } - _version = config.attribute_value("version", Version()); + bool trigger_update = false; + + Version const version = config.attribute_value("version", Version()); + if (version != _version) { + _version = version; + trigger_update = true; + } if (_report_delay_ms) { - if (!_timer.constructed()) { _timer.construct(_env); _timer->sigh(_timer_handler); } - - trigger_report_update(); + trigger_update = true; } + + if (trigger_update) + trigger_report_update(); } void trigger_report_update() override