import asyncio import time import sys import os sys.path.append(os.path.expanduser('~/nemesis/nemesis')) from causal_event_loop import causal_loop_factory async def burn_cpu(sec): t0 = time.perf_counter() elapsed = 0 while (elapsed < sec): for _ in range(1000): pass elapsed = time.perf_counter() - t0 async def sleep_task(duration): await asyncio.sleep(duration) async def main(): total_duration = 10 sleep_durations = [1.0, 0.7, 0.7, 0.4] for _ in range(total_duration): tasks = [asyncio.create_task(sleep_task(duration)) for duration in sleep_durations] burn_task = asyncio.create_task(burn_cpu(1)) await asyncio.gather(burn_task, *tasks) asyncio.run(main(), loop_factory=causal_loop_factory)