From 412c8225046b7549e0b02425f5140f2a33abac8a Mon Sep 17 00:00:00 2001 From: bd Date: Mon, 8 Dec 2025 17:38:42 -0500 Subject: ex: add examples --- t/block_longtime.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 t/block_longtime.py (limited to 't/block_longtime.py') diff --git a/t/block_longtime.py b/t/block_longtime.py new file mode 100644 index 0000000..d848228 --- /dev/null +++ b/t/block_longtime.py @@ -0,0 +1,30 @@ +import asyncio +import time +import sys +import os +sys.path.append(os.path.expanduser('~/nemesis/')) +from nemesis.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 = 90 + 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) -- cgit v1.2.3