If GIL is disabled then there's threat of a race condition if some other code specifically requests USB processing (i.e. to unblock stdio), while a scheduled TinyUSB callback is already running on another thread. Relies on the change in the parent commit, where scheduler is restricted to main thread if GIL is disabled. Fixes #15390 - "TinyUSB callback can't recurse" exceptions on rp2 when using _thread module and USB serial I/O. Adds a unit test for stdin functioning correctly in threads (fails on rp2 port without this fix). This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au> |
||
|---|---|---|
| .. | ||
| mp_usbd.c | ||
| mp_usbd.h | ||
| mp_usbd_cdc.c | ||
| mp_usbd_cdc.h | ||
| mp_usbd_descriptor.c | ||
| mp_usbd_runtime.c | ||
| tusb_config.h | ||