mirror of
https://github.com/micropython/micropython.git
synced 2026-01-07 12:40:15 +01:00
rp2: Refactor to not use pico-sdk alarm pool functions for sleeping.
The best_effort_wfe_or_timeout() and sleep_us() pico-sdk functions use the pico-sdk alarm pool internally, and that has a bug. Some usages inside pico-sdk (notably multicore_lockout_start_blocking()) will still end up calling best_effort_wfe_or_timeout(), although usually with "end_of_time" as the timeout value so it should avoid any alarm pool race conditions. This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
This commit is contained in:
committed by
Damien George
parent
74fb42aa82
commit
83e82c5ad3
@@ -89,7 +89,7 @@ void soft_timer_handler(void) {
|
||||
heap = (soft_timer_entry_t *)mp_pairheap_pop(soft_timer_lt, &heap->pairheap);
|
||||
if (entry->flags & SOFT_TIMER_FLAG_PY_CALLBACK) {
|
||||
mp_sched_schedule(entry->py_callback, MP_OBJ_FROM_PTR(entry));
|
||||
} else {
|
||||
} else if (entry->c_callback) {
|
||||
entry->c_callback(entry);
|
||||
}
|
||||
if (entry->mode == SOFT_TIMER_MODE_PERIODIC) {
|
||||
|
||||
Reference in New Issue
Block a user