micropython/extmod
Yoctopuce dev bdb7e036d2 extmod/asyncio: Fix early exit of asyncio scheduler.
This commit fixes three open issues related to the asyncio scheduler
exiting prematurely when the main task queue is empty, in cases where
CPython would not exit (for example, because the main task is not done
because it's on a different queue).

In the first case, the scheduler exits because running a task via
`run_until_complete` did not schedule any dependent tasks.

In the other two cases, the scheduler exits because the tasks are queued in
an event queue.

Tests have been added which reproduce the original issues.  These test
cases document the unauthorized use of `Event.set()` from a soft IRQ, and
are skipped in unsupported environments (webassembly and native emitter).

Fixes issues #16759, #16569 and #16318.

Signed-off-by: Yoctopuce dev <dev@yoctopuce.com>
2025-05-07 14:56:47 +10:00
..
asyncio extmod/asyncio: Fix early exit of asyncio scheduler. 2025-05-07 14:56:47 +10:00
axtls-include all: Prune trailing whitespace. 2024-03-07 16:25:17 +11:00
berkeley-db all: Update extmod, ports, examples to build with new berkeley-db lib. 2024-03-16 12:19:12 +11:00
btstack all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
libmetal extmod/libmetal: Fix libmetal rules for mkdir dependencies. 2024-09-06 17:14:03 +10:00
lwip-include extmod/lwip-include: Increase number of lwIP timers when mDNS enabled. 2025-02-14 12:32:00 +11:00
mbedtls extmod/modtls_mbedtls: Wire in support for DTLS. 2025-02-14 12:55:25 +11:00
nimble extmod/nimble: Remove asserts of ediv_rand_present and adjust comments. 2024-11-05 11:27:06 +11:00
extmod.cmake rp2,esp32,extmod: Implement UPDATE_SUBMODULES in CMake. 2025-03-27 17:51:12 +11:00
extmod.mk drivers/esp-hosted: Rename Bluetooth HCI backend driver. 2025-04-22 12:30:18 +10:00
font_petme128_8x8.h extmod: Move font_petme128_8x8.h from ports/stm32 to extmod. 2022-05-05 13:30:40 +10:00
machine_adc_block.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_adc.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_bitstream.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_i2c.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_i2s.c esp32/machine_i2s: Integrate new I2S IDF driver. 2024-03-08 13:31:02 +11:00
machine_mem.c extmod/modmachine: Add MICROPY_PY_MACHINE_MEMX configuration option. 2024-03-15 12:04:34 +11:00
machine_pinbase.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_pulse.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_pwm.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_signal.c extmod/modmachine: Add MICROPY_PY_MACHINE_SIGNAL configuration option. 2024-03-15 12:04:25 +11:00
machine_spi.c extmod/machine_spi: Support firstbit=LSB for machine.SoftSPI. 2024-07-12 22:59:31 +10:00
machine_timer.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_uart.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
machine_usb_device.c extmod/machine_usb_device: Add exception text wrappers. 2025-04-22 11:29:32 +10:00
machine_wdt.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
misc.h extmod/os_dupterm: Let mp_os_dupterm_tx_strn() return num bytes written. 2023-12-22 10:26:52 +11:00
modasyncio.c extmod/modasyncio: Add support for a callback on TaskQueue push. 2024-06-20 00:11:05 +10:00
modbinascii.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modbluetooth.c extmod/modbluetooth: Use newer mp_map_slot_is_filled function. 2025-04-22 11:29:43 +10:00
modbluetooth.h all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modbtree.c extmod/modbtree: Add checks for already-closed database. 2024-07-22 10:42:29 +10:00
modcryptolib.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
moddeflate.c extmod/moddeflate: Keep DeflateIO state consistent on window alloc fail. 2025-03-27 11:58:59 +11:00
modframebuf.c extmod/modframebuf: Fix 0 radius bug in FrameBuffer.ellipse. 2024-11-28 22:56:44 +11:00
modhashlib.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modheapq.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modjson.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modlwip.c all: Upgrade codespell to v2.4.1. 2025-02-25 16:11:33 +11:00
modmachine.c extmod/modmachine: Use sys.exit as implementation of machine.soft_reset. 2024-07-20 12:18:07 +10:00
modmachine.h extmod/machine_usb_device: Add support for Python USB devices. 2024-03-15 14:22:11 +11:00
modmarshal.c extmod/modmarshal: Add new marshal module. 2025-02-11 16:54:20 +11:00
modnetwork.c extmod/network_ppp_lwip: Add network.PPP via lwIP. 2024-08-29 23:46:13 +10:00
modnetwork.h extmod/network_ppp_lwip: Add network.PPP via lwIP. 2024-08-29 23:46:13 +10:00
modonewire.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modopenamp_remoteproc_store.c extmod/modopenamp: Add support for building Open-AMP on device side. 2024-08-08 17:59:32 +10:00
modopenamp_remoteproc.c extmod/modopenamp: Add support for building Open-AMP on device side. 2024-08-08 17:59:32 +10:00
modopenamp_remoteproc.h extmod/modopenamp_remoteproc: Add new OpenAMP RemoteProc class. 2024-03-15 18:11:28 +11:00
modopenamp.c extmod/modopenamp: Use mp_event_* functions for poll/wait. 2024-08-08 18:02:21 +10:00
modopenamp.h extmod/modopenamp_remoteproc: Add new OpenAMP RemoteProc class. 2024-03-15 18:11:28 +11:00
modos.c extmod/vfs: Guard mutating fs functions with MICROPY_VFS_WRITABLE. 2024-12-20 21:58:50 +11:00
modplatform.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modplatform.h extmod/modplatform: Distinguish RISC-V 64 from RISC-V 32. 2024-12-10 12:10:36 +11:00
modrandom.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modre.c py: Add new cstack API for stack checking, with limit margin macro. 2024-08-14 12:55:45 +10:00
modselect.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modsocket.c extmod/modsocket: Add missing static in private function definitions. 2025-01-02 13:33:39 +11:00
modtime.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modtime.h all: Rename *umodule*.h to remove the "u" prefix. 2023-06-08 17:54:14 +10:00
modtls_axtls.c extmod/modtls_axtls: Add verify_mode and CERT_NONE constant. 2024-03-28 17:36:13 +11:00
modtls_mbedtls.c extmod/modtls_mbedtls: Wire in support for DTLS. 2025-02-14 12:55:25 +11:00
moductypes.c extmod/moductypes: Fix large return values of addressof and INT_MAYBE. 2024-12-18 11:00:08 +11:00
modvfs.c extmod/modvfs: Add vfs.rom_ioctl function and its ioctl constants. 2025-03-06 12:52:35 +11:00
modwebrepl.c all: Use new mp_obj_new_str_from_cstr() function. 2024-07-04 15:55:03 +10:00
modwebsocket.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modwebsocket.h all: Rename *umodule*.h to remove the "u" prefix. 2023-06-08 17:54:14 +10:00
mpbthci.c extmod/modbluetooth: Refactor stack/hci/driver/port bindings. 2020-09-08 11:41:31 +10:00
mpbthci.h extmod/nimble: Add support for reading whole HCI UART packets. 2022-06-03 11:53:28 +10:00
network_cyw43.c extmod/network_cyw43: Add WPA3 security constants. 2025-03-12 13:17:02 +11:00
network_cyw43.h extmod: Add network-level class binding to cyw43 driver. 2019-06-03 16:47:35 +10:00
network_esp_hosted.c all: Use new mp_obj_new_str_from_cstr() function. 2024-07-04 15:55:03 +10:00
network_lwip.c all: Use new mp_obj_new_str_from_cstr() function. 2024-07-04 15:55:03 +10:00
network_ninaw10.c extmod/network_nina: Fix the AP security mode constants. 2024-07-12 01:03:46 +10:00
network_ppp_lwip.c extmod/network_ppp: Allow stream=None to suspend PPP. 2024-11-13 13:11:32 +11:00
network_wiznet5k.c extmod/network_wiznet5k: Reset mDNS when interface is brought up. 2024-10-23 16:29:28 +11:00
os_dupterm.c extmod/os_dupterm: Handle exception properly when it occurs in parallel. 2024-03-16 10:59:03 +11:00
vfs_blockdev.c extmod/vfs_blockdev: Support bool return from Python read/write blocks. 2024-11-13 14:21:29 +11:00
vfs_fat_diskio.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
vfs_fat_file.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
vfs_fat.c extmod/vfs_fat: Set default volume label on mkfs if it's defined. 2024-07-23 11:39:17 +10:00
vfs_fat.h extmod: Factor out block-device struct to make independent of fatfs. 2019-10-29 12:12:37 +11:00
vfs_lfs.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
vfs_lfs.h extmod: Add VFS littlefs bindings. 2019-10-29 14:17:29 +11:00
vfs_lfsx_file.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
vfs_lfsx.c all: Use new mp_obj_new_str_from_cstr() function. 2024-07-04 15:55:03 +10:00
vfs_posix_file.c extmod/vfs_posix_file: Skip flush of tty handles in msvc debug builds. 2024-10-09 15:03:07 +11:00
vfs_posix.c all: Use new mp_obj_new_str_from_cstr() function. 2024-07-04 15:55:03 +10:00
vfs_posix.h extmod/vfs: Introduce a C-level VFS protocol, with fast import_stat. 2018-06-06 14:33:42 +10:00
vfs_reader.c extmod/vfs_reader: Add support for opening a memory-mappable file. 2024-12-23 13:04:54 +11:00
vfs_rom_file.c extmod/vfs_rom: Add VfsRom filesystem object. 2024-12-23 13:04:54 +11:00
vfs_rom.c extmod/vfs_rom: Implement minimal VfsRom.getcwd() method. 2025-03-27 17:04:12 +11:00
vfs_rom.h extmod/vfs_rom: Add VfsRom filesystem object. 2024-12-23 13:04:54 +11:00
vfs.c extmod/vfs: Return mount table from no-args vfs.mount call. 2025-03-27 16:37:04 +11:00
vfs.h extmod/vfs: Add mp_vfs_mount_romfs_protected() helper. 2025-03-06 12:52:35 +11:00
virtpin.c py/obj: Add accessors for type slots and use everywhere. 2022-09-19 19:06:07 +10:00
virtpin.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00