From 3590c1689ec4b5655a2a9d01e2d70c55c535851f Mon Sep 17 00:00:00 2001 From: Kimi Agent Date: Thu, 19 Mar 2026 14:18:27 -0400 Subject: [PATCH] fix: make _get_loop_agent singleton thread-safe (#449) Co-authored-by: Kimi Agent Co-committed-by: Kimi Agent --- src/timmy/agentic_loop.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/timmy/agentic_loop.py b/src/timmy/agentic_loop.py index 90f2124..1d64d30 100644 --- a/src/timmy/agentic_loop.py +++ b/src/timmy/agentic_loop.py @@ -18,6 +18,7 @@ from __future__ import annotations import asyncio import logging import re +import threading import time import uuid from collections.abc import Callable @@ -59,6 +60,7 @@ class AgenticResult: # --------------------------------------------------------------------------- _loop_agent = None +_loop_agent_lock = threading.Lock() def _get_loop_agent(): @@ -69,9 +71,11 @@ def _get_loop_agent(): """ global _loop_agent if _loop_agent is None: - from timmy.agent import create_timmy + with _loop_agent_lock: + if _loop_agent is None: + from timmy.agent import create_timmy - _loop_agent = create_timmy() + _loop_agent = create_timmy() return _loop_agent