mirror of
https://github.com/micropython/micropython.git
synced 2025-12-13 08:20:13 +01:00
rp2/pendsv: Fix PendSV_Handler dispatch check when threading enabled.
If MICROPY_PY_THREAD is set, PendSV_Handler acquires a mutex and calls the dispatch functions. If pendsv_schedule_dispatch is called by a higher priority interrupt while the mutex is acquired by PendSV_Handler it's possible for the dispatch to not be triggered. Add a check for dispatch calls at the end of PendSV_Handler once the mutex has been released. Fixes issue #18365. Signed-off-by: Peter Harper <peter.harper@raspberrypi.com>
This commit is contained in:
committed by
Damien George
parent
094437686f
commit
4e79698a99
@@ -180,5 +180,7 @@ void PendSV_Handler(void) {
|
||||
|
||||
#if MICROPY_PY_THREAD
|
||||
mp_thread_recursive_mutex_unlock(&pendsv_mutex);
|
||||
// Check if a dispatch occurred while the interrupt was being serviced
|
||||
pendsv_resume_run_dispatch();
|
||||
#endif
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user