Loading...
Loading...
Found 3 Skills
Use when designing or reviewing concurrent Python code — selecting between asyncio, threads, or multiprocessing; structuring cancellation and deadline propagation; bounding fan-out and backpressure. Also use when diagnosing race conditions, deadlocks, slow throughput, or thread/task leaks under load.
Use when writing or reviewing asyncio code in Jupyter notebooks or '#%%' cell workflows — structuring event-loop ownership, orchestrating async tasks, or choosing compatibility strategies. Also use when hitting RuntimeError: This event loop is already running, asyncio.run() failures in cells, or tasks silently never completing.
Subprocess and concurrency discipline for Python: how to run external programs safely, and how to pick the right concurrency model instead of the habitual one. Use when spawning processes with subprocess or asyncio subprocesses, writing threading or ThreadPoolExecutor code, using multiprocessing or ProcessPoolExecutor, sizing worker pools, bounding fan-out, or diagnosing deadlocks, hangs, orphaned children, and zombie processes. Covers argv vs shell, timeouts that kill the whole process tree, pipe deadlocks, start methods (spawn/forkserver/fork), pickling limits, GIL and free-threading, and cancellation. For event-loop and coroutine rules (TaskGroup, blocking calls, cancellation), use python-async-best-practices instead.