Browse Source
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.pull/5890/head
Damien George
5 years ago
4 changed files with 62 additions and 7 deletions
@ -0,0 +1,36 @@ |
|||
# 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() |
@ -0,0 +1,6 @@ |
|||
start |
|||
task 0 |
|||
stop |
|||
start |
|||
task 0 |
|||
stop |
Loading…
Reference in new issue