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