mirror of
https://github.com/esphome/esphome.git
synced 2026-07-10 08:55:36 +00:00
95ff70eb4896919bae7d36a4c358abae6e68350a
The ESP-IDF MQTT client dispatches events from its own task, which pushed to a std::queue while the main loop popped from it. std::queue is not thread-safe; concurrent access can corrupt its internal state. Replace with EventPool + LockFreeQueue (SPSC ring buffer) already used elsewhere in the codebase. The pool is sized to queue capacity (SIZE-1) so allocate() fails before push() can, which prevents both a slot leak and an SPSC violation on the pool's free list. Also rename the outbound pool from mqtt_event_pool_ to mqtt_outbound_pool_ to avoid confusion with the new inbound pool.
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
545 MiB
Languages
C++
60.1%
Python
39.3%
C
0.3%
JavaScript
0.2%
