From 957ef88e76f011834fc6e322308b586c59df48e1 Mon Sep 17 00:00:00 2001 From: Casey Jones <731937+doctorcolossus@users.noreply.github.com> Date: Tue, 13 Jan 2026 19:32:24 +0200 Subject: [PATCH] parallel.py: ensure valid asyncio event loop --- brotab/parallel.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/brotab/parallel.py b/brotab/parallel.py index 4167817..7df77e5 100644 --- a/brotab/parallel.py +++ b/brotab/parallel.py @@ -1,6 +1,5 @@ from concurrent.futures import ThreadPoolExecutor -from asyncio import get_event_loop, gather - +from asyncio import get_event_loop, gather, new_event_loop, set_event_loop def call_parallel(functions): """ @@ -9,7 +8,15 @@ def call_parallel(functions): Create a pool of thread as large as the number of functions. Functions should accept no parameters (wrap then with partial or lambda). """ - loop = get_event_loop() + + try: + loop = get_event_loop() + if loop.is_closed(): + raise RuntimeError("Event loop is closed.") + except RuntimeError: + loop = new_event_loop() + set_event_loop(loop) + executor = ThreadPoolExecutor(max_workers=len(functions)) try: