-
Notifications
You must be signed in to change notification settings - Fork 13.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WiFiScan.ino ported to CoopTask libraries doesn't find any networks #7969
Comments
mcspr
pushed a commit
that referenced
this issue
Oct 16, 2021
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: - #6107 - discussion about the esp_yield() and esp_delay() usage in ClientContext - #6212 - discussion about replacing delay() with a blocking loop - #6680 - pull request introducing LwIP-based Ethernet - #7146 - discussion that originated UART code changes - #7969 - proposal to remove delay(0) from the example code - #8291 - discussion related to the run_scheduled_recurrent_functions() usage in LwIP Ethernet - #8317 - yieldUntil() implementation, similar to the esp_delay() overload with a timeout and a 0 interval
hasenradball
pushed a commit
to hasenradball/Arduino
that referenced
this issue
Nov 18, 2024
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Preparation (MCVE)
Let's trivially port the
libraries\ESP8266WiFi\examples\WiFiScan\WiFiScan.ino
to the Arduino CoopTask library, like so:Without additional tasks, this looks a bit lost, but the utility is obvious if you consider that one can add additional tasks, and as long as they don't need to guard shared resources, it's basically copy&paste from example code and there you go, without stackless coroutines, async programming or anything advanced. [full disclosure: I am the author/maintainer of CoopTask]
Issue
In master, no networks are found:
Resolution
The PR #6782 fixes this.
The text was updated successfully, but these errors were encountered: