Fix: Replace threading.Lock with anyio.Lock for Ray deployment compatibility (#1151)

This commit is contained in:
leweng 2025-07-21 18:22:49 +08:00 • committed by GitHub
commit c260e29a92
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -4,7 +4,6 @@ from __future__ import annotations
import contextlib
import logging
import threading
from collections.abc import AsyncIterator
from http import HTTPStatus
from typing import Any
@ -75,7 +74,7 @@ class StreamableHTTPSessionManager:
# The task group will be set during lifespan
self._task_group = None
# Thread-safe tracking of run() calls
self._run_lock = threading.Lock()
self._run_lock = anyio.Lock()
self._has_started = False
@contextlib.asynccontextmanager
@ -97,7 +96,7 @@ class StreamableHTTPSessionManager:
yield
"""
# Thread-safe check to ensure run() is only called once
with self._run_lock:
async with self._run_lock:
if self._has_started:
raise RuntimeError(
"StreamableHTTPSessionManager .run() can only be called "