From 165ae5647bbe015e45e4424008a618167abbafac Mon Sep 17 00:00:00 2001 From: Ruslan Kuprieiev Date: Fri, 11 Apr 2025 16:07:06 +0300 Subject: [PATCH] chore: drop global RUNNER_THREAD_POOL --- src/isolate/server/server.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/isolate/server/server.py b/src/isolate/server/server.py index 7d2eb2c..12a9931 100644 --- a/src/isolate/server/server.py +++ b/src/isolate/server/server.py @@ -56,7 +56,6 @@ # Number of seconds to observe the queue before checking the termination # event. _Q_WAIT_DELAY = 0.1 -RUNNER_THREAD_POOL = futures.ThreadPoolExecutor(max_workers=MAX_THREADS) class GRPCException(Exception): @@ -199,6 +198,10 @@ class IsolateServicer(definitions.IsolateServicer): default_settings: IsolateSettings = field(default_factory=IsolateSettings) background_tasks: dict[str, RunTask] = field(default_factory=dict) + _thread_pool: futures.ThreadPoolExecutor = field( + default_factory=lambda: futures.ThreadPoolExecutor(max_workers=MAX_THREADS) + ) + def _run_task(self, task: RunTask) -> Iterator[definitions.PartialRunResult]: messages: Queue[definitions.PartialRunResult] = Queue() environments = [] @@ -332,7 +335,7 @@ def Submit( task = RunTask(request=request.function) self.set_metadata(task, request.metadata) - task.future = RUNNER_THREAD_POOL.submit(self._run_task_in_background, task) + task.future = self._thread_pool.submit(self._run_task_in_background, task) task_id = str(uuid.uuid4()) print(f"Submitted a task {task_id}")