mirror of
https://github.com/esphome/esphome.git
synced 2026-09-17 18:18:43 +00:00
867fae3bb813ae042ca27b7c7b73c9a3e3ae926c
Switch writer-side plain stores under lock_ to __atomic_store_n with __ATOMIC_RELAXED on NO_ATOMICS. The input value for RMW is read plainly (safe — only writers mutate, serialised by the lock; readers only atomic-load so two reads don't race). Closes the formal C++ memory-model hole where plain-store vs atomic-load was a data race in the standard even though aligned 32-bit STR/LDR on ARMv5TE is atomic in practice. Applies to scheduler.h counter mutators and the under-lock writes to last_millis / millis_major in time_64.cpp's near-rollover branch. Same ARMv5TE codegen (plain STR). ATOMICS / SINGLE paths unchanged.
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
598 MiB
Languages
C++
55.7%
Python
43.7%
C
0.3%
JavaScript
0.2%
