giambio/tests/count.py

40 lines
917 B
Python
Raw Normal View History

import giambio
async def countdown(n: int):
while n > 0:
print(f"Down {n}")
n -= 1
await giambio.sleep(1)
print("Countdown over")
return 0
2020-07-13 22:02:31 +02:00
async def countup(stop: int, step: int = 1):
x = 0
while x < stop:
print(f"Up {x}")
x += 1
await giambio.sleep(step)
print("Countup over")
return 1
async def main():
2020-07-05 08:58:23 +02:00
cdown = scheduler.create_task(countdown(10))
cup = scheduler.create_task(countup(5, 2))
print("Counters started, awaiting completion")
await giambio.sleep(2)
print("Slept 2 seconds, killing countup")
await cup.cancel()
2020-07-11 10:57:12 +02:00
print("Countup cancelled")
up = await cup.join()
down = await cdown.join()
print(f"Countup returned: {up}\nCountdown returned: {down}")
print("Task execution complete")
2020-07-13 22:02:31 +02:00
if __name__ == "__main__":
scheduler = giambio.AsyncScheduler()
2020-07-05 08:58:23 +02:00
scheduler.start(main())