db137e70dc
This commit adds Loop.new_event_loop() which is used to reset the singleton event loop. This functionality is put here instead of in Loop.close() to make it possible to write code that is compatible with CPython.
37 lines
703 B
Python
37 lines
703 B
Python
# Test Loop.new_event_loop()
|
|
|
|
try:
|
|
import uasyncio as asyncio
|
|
except ImportError:
|
|
try:
|
|
import asyncio
|
|
except ImportError:
|
|
print("SKIP")
|
|
raise SystemExit
|
|
|
|
|
|
async def task():
|
|
for i in range(4):
|
|
print("task", i)
|
|
await asyncio.sleep(0)
|
|
await asyncio.sleep(0)
|
|
|
|
|
|
async def main():
|
|
print("start")
|
|
loop.create_task(task())
|
|
await asyncio.sleep(0)
|
|
print("stop")
|
|
loop.stop()
|
|
|
|
|
|
# Use default event loop to run some tasks
|
|
loop = asyncio.get_event_loop()
|
|
loop.create_task(main())
|
|
loop.run_forever()
|
|
|
|
# Create new event loop, old one should not keep running
|
|
loop = asyncio.new_event_loop()
|
|
loop.create_task(main())
|
|
loop.run_forever()
|