diff --git a/esphome/core/wake.h b/esphome/core/wake.h index 961edf5adb..fe49038d65 100644 --- a/esphome/core/wake.h +++ b/esphome/core/wake.h @@ -94,14 +94,29 @@ namespace internal { void wakeable_delay(uint32_t ms); } // namespace internal -// === Host (UDP loopback socket) === +// === Host / Zephyr / other === #else -/// Defined in wake.cpp. +#ifdef USE_HOST +/// Host: wakes select() via UDP loopback socket. Defined in wake.cpp. void wake_loop_threadsafe(); +#else +/// Fallback for platforms without a specific wake mechanism. +inline void wake_loop_threadsafe() {} +#endif inline void wake_loop_any_context() { wake_loop_threadsafe(); } +namespace internal { +inline void wakeable_delay(uint32_t ms) { + if (ms == 0) { + yield(); + return; + } + delay(ms); +} +} // namespace internal + #endif } // namespace esphome