mirror of
https://github.com/W3SLAV/micropython.git
synced 2025-06-19 12:05:32 -04:00

And use `asyncio.new_event_loop()` where possible. This change is needed because CPython 3.12 deprecated the `get_event_loop()` function. Signed-off-by: Damien George <damien@micropython.org>
43 lines
719 B
Python
43 lines
719 B
Python
# Test Loop.stop() to stop the event loop
|
|
|
|
try:
|
|
import asyncio
|
|
except ImportError:
|
|
print("SKIP")
|
|
raise SystemExit
|
|
|
|
|
|
async def task():
|
|
print("task")
|
|
|
|
|
|
async def main():
|
|
print("start")
|
|
|
|
# Stop the loop after next yield
|
|
loop.stop()
|
|
|
|
# Check that calling stop() again doesn't do/break anything
|
|
loop.stop()
|
|
|
|
# This await should stop
|
|
print("sleep")
|
|
await asyncio.sleep(0)
|
|
|
|
# Schedule stop, then create a new task, then yield
|
|
loop.stop()
|
|
asyncio.create_task(task())
|
|
await asyncio.sleep(0)
|
|
|
|
# Final stop
|
|
print("end")
|
|
loop.stop()
|
|
|
|
|
|
loop = asyncio.new_event_loop()
|
|
loop.create_task(main())
|
|
|
|
for i in range(3):
|
|
print("run", i)
|
|
loop.run_forever()
|