1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-30 23:24:49 +03:00
esp8266/libraries/ESP8266HTTPUpdateServer
Dirk O. Kaar c312a2eaf1
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:
-  - discussion about the esp_yield() and esp_delay() usage in ClientContext
-  - discussion about replacing delay() with a blocking loop
-  - pull request introducing LwIP-based Ethernet
-  - discussion that originated UART code changes
-  - proposal to remove delay(0) from the example code
-  - discussion related to the run_scheduled_recurrent_functions() usage in LwIP Ethernet
-  - yieldUntil() implementation, similar to the esp_delay() overload with a timeout and a 0 interval
2021-10-17 00:19:01 +03:00
..