You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
# Test fairness of scheduler
|
|
|
|
|
|
|
|
try:
|
|
|
|
import uasyncio as asyncio
|
|
|
|
except ImportError:
|
|
|
|
try:
|
|
|
|
import asyncio
|
|
|
|
except ImportError:
|
|
|
|
print("SKIP")
|
|
|
|
raise SystemExit
|
|
|
|
|
|
|
|
|
|
|
|
async def task(id, t):
|
|
|
|
print("task start", id)
|
|
|
|
while True:
|
|
|
|
if t > 0:
|
|
|
|
print("task work", id)
|
|
|
|
await asyncio.sleep(t)
|
|
|
|
|
|
|
|
|
|
|
|
async def main():
|
|
|
|
t1 = asyncio.create_task(task(1, -0.01))
|
|
|
|
t2 = asyncio.create_task(task(2, 0.1))
|
|
|
|
t3 = asyncio.create_task(task(3, 0.18))
|
|
|
|
t4 = asyncio.create_task(task(4, -100))
|
|
|
|
await asyncio.sleep(0.5)
|
|
|
|
t1.cancel()
|
|
|
|
t2.cancel()
|
|
|
|
t3.cancel()
|
|
|
|
t4.cancel()
|
|
|
|
print("finish")
|
|
|
|
|
|
|
|
|
|
|
|
asyncio.run(main())
|