mirror of
https://github.com/esphome/esphome.git
synced 2026-05-21 13:24:09 +08:00
[sensor] Drop incorrect O(1) complexity claim from timeout filter comment
set_timer_common_'s self-key cancel path scans items_ and to_add_ linearly, so the cancel-and-replace is O(N) in the global scheduler item count, not O(1). Reword to describe the behavior without the complexity claim. Address Copilot review feedback.
This commit is contained in:
@@ -323,8 +323,8 @@ optional<float> or_filter_new_value(Filter **filters, size_t count, float value,
|
||||
}
|
||||
|
||||
// TimeoutFilterLast - "last" mode: re-arm on every input; output the latest value if no further
|
||||
// input arrives within time_period_. Self-keyed scheduler.set_timeout(this, ...) cancels and
|
||||
// replaces any pending arm in O(1).
|
||||
// input arrives within time_period_. Self-keyed scheduler.set_timeout(this, ...) cancels any
|
||||
// pending arm with the same self-key and installs a new one.
|
||||
optional<float> TimeoutFilterLast::new_value(float value) {
|
||||
this->pending_value_ = value;
|
||||
App.scheduler.set_timeout(this, this->time_period_, [this]() { this->output(this->pending_value_); });
|
||||
|
||||
Reference in New Issue
Block a user