mirror of
https://github.com/esphome/esphome.git
synced 2026-09-13 00:07:32 +00:00
d341ee8c767ff8b4bc75a5b16b264ba8be5c6184
On Xtensa (dual-core ESP32), even relaxed atomic loads emit a memw barrier instruction. The dropped_count_ check in get_and_reset_dropped_count() was executing every loop() iteration even when the queue was empty. Since drops only occur when the queue is full, and only the main loop drains the queue, an empty queue guarantees no new drops since the last reset. Restructure the loop to early-return when pop() returns nullptr, skipping the unnecessary memw. Also moves advertising_->loop() before the queue drain so it runs unconditionally without duplication, and converts while to do/while since the first element is known non-null after the nullptr check.
Description
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
Readme
Multiple Licenses
592 MiB
Languages
C++
55.8%
Python
43.6%
C
0.3%
JavaScript
0.2%
