27 lines
1.1 KiB
Python
27 lines
1.1 KiB
Python
import aiosched
|
|
from catch import child
|
|
from debugger import Debugger
|
|
|
|
|
|
# TODO: This crashes 1 second later than it should be
|
|
async def main(children_outer: list[tuple[str, int]], children_inner: list[tuple[str, int]]):
|
|
try:
|
|
async with aiosched.with_context() as ctx:
|
|
before = aiosched.clock()
|
|
print("[main] Spawning children in first context")
|
|
for name, delay in children_outer:
|
|
await ctx.spawn(child, name, delay)
|
|
print("[main] Children spawned")
|
|
async with aiosched.with_context() as ctx2:
|
|
print("[main] Spawning children in second context")
|
|
for name, delay in children_inner:
|
|
await ctx2.spawn(child, name, delay)
|
|
print("[main] Children spawned")
|
|
except BaseException as err:
|
|
print(f"[main] Child raised an exception -> {type(err).__name__}: {err}")
|
|
print(f"[main] Children exited in {aiosched.clock() - before:.2f} seconds")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
aiosched.run(main, [("first", 1), ("second", 2)], [("third", 3), ("fourth", 4)], debugger=None)
|