-
-
Notifications
You must be signed in to change notification settings - Fork 8.5k
Open
Description
Port, board and/or hardware
rp2
MicroPython version
On the rp2 port with MICROPY_PY_THREAD set, PendSV_Handler acquires pendsv_mutex then calls the dispatch handlers. If an interrupt goes off while inside PendSV_Handler which ends up calling pendsv_schedule_dispatch, nothing happens because pendsv_suspend_count is not zero and the "work" kicked off by the interrupt is never done.
I'm a bit surprised this isn't impacting cyw43. Are we relying on LwIP ticks to service cyw43?
Reproduction
I don't have an easy to reproduce method at the moment although I've seen this cause a real issue.
Expected behaviour
A call to pendsv_schedule_dispatch must end up calling the dispatch function.
Observed behaviour
I see a call made to pendsv_schedule_dispatch but the dispatch function is not called.
Additional Information
No, I've provided everything above.
Code of Conduct
Yes, I agree