J. Nick Koston ce6332e6c3 [core] Remove pre-sleep socket scan from fast select path
The pre-sleep scan of all monitored sockets was added to preserve
select() semantics by checking for pending data before sleeping.
However, this is unnecessary with the FreeRTOS task notification
approach:

- xTaskNotifyGive from the lwip callback persists until consumed
  by ulTaskNotifyTake, so notifications received while the task
  is running (not sleeping) are not lost.

- The only case the scan caught was intentionally undrained sockets
  (e.g., API's MAX_MESSAGES_PER_LOOP=5 throttle). Adding up to
  16ms (loop_interval) latency before re-checking undrained data
  is the desired behavior — waking immediately would defeat the
  purpose of the throttle which exists to let other components run.

This removes N volatile cross-core reads (one per monitored socket)
from every loop iteration.
2026-03-04 11:12:15 -10:00
2023-06-12 17:00:34 +12:00
2022-09-06 15:48:01 +12:00
2025-12-21 09:26:03 -05:00
2024-03-28 10:20:51 +13:00
2025-07-17 22:40:28 +12:00
2026-03-03 10:55:56 -10:00
2025-12-08 14:37:45 -05:00
2026-03-03 20:45:28 +13:00
2025-07-17 22:40:28 +12:00
2026-02-11 22:11:48 -05:00
2025-12-05 08:48:04 -05:00
S
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 546 MiB
Languages
C++ 60.1%
Python 39.3%
C 0.3%
JavaScript 0.2%