fix(mcp): preserve loop during probes
This commit is contained in:
@@ -57,6 +57,32 @@ class TestMCPLoopExceptionHandler:
|
||||
finally:
|
||||
mcp_mod._stop_mcp_loop()
|
||||
|
||||
def test_probe_cleanup_does_not_stop_loop_with_registered_servers(self):
|
||||
"""Probe cleanup must not kill the shared loop used by live MCP tools."""
|
||||
import tools.mcp_tool as mcp_mod
|
||||
|
||||
with mcp_mod._lock:
|
||||
mcp_mod._servers.clear()
|
||||
mcp_mod._server_connecting.clear()
|
||||
try:
|
||||
mcp_mod._ensure_mcp_loop()
|
||||
with mcp_mod._lock:
|
||||
loop = mcp_mod._mcp_loop
|
||||
mcp_mod._servers["live"] = MagicMock(session=object())
|
||||
|
||||
assert mcp_mod._stop_mcp_loop_if_idle() is False
|
||||
|
||||
with mcp_mod._lock:
|
||||
assert mcp_mod._mcp_loop is loop
|
||||
assert mcp_mod._mcp_thread is not None
|
||||
assert loop is not None
|
||||
assert loop.is_running()
|
||||
finally:
|
||||
with mcp_mod._lock:
|
||||
mcp_mod._servers.clear()
|
||||
mcp_mod._server_connecting.clear()
|
||||
mcp_mod._stop_mcp_loop()
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Fix 2: stdio PID tracking
|
||||
|
||||
Reference in New Issue
Block a user