You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement esp_yield() as a replacement for delay(0)
esp_yield() now also calls esp_schedule(), original esp_yield() function renamed to esp_suspend().
Don't use delay(0) in the Core internals, libraries and examples. Use yield() when the code is
supposed to be called from CONT, use esp_yield() when the code can be called from either CONT or SYS.
Clean-up esp_yield() and esp_schedule() declarations across the code and use coredecls.h instead.
Implement helper functions for libraries that were previously using esp_yield(), esp_schedule() and
esp_delay() directly to wait for certain SYS context tasks to complete. Correctly use esp_delay()
for timeouts, make sure scheduled functions have a chance to run (e.g. LwIP_Ethernet uses recurrent)
Related issues:
- esp8266#6107 - discussion about the esp_yield() and esp_delay() usage in ClientContext
- esp8266#6212 - discussion about replacing delay() with a blocking loop
- esp8266#6680 - pull request introducing LwIP-based Ethernet
- esp8266#7146 - discussion that originated UART code changes
- esp8266#7969 - proposal to remove delay(0) from the example code
- esp8266#8291 - discussion related to the run_scheduled_recurrent_functions() usage in LwIP Ethernet
- esp8266#8317 - yieldUntil() implementation, similar to the esp_delay() overload with a timeout and a 0 interval
0 commit comments