refactor(mcp): _wait_for_lazy_reconnect -> _wait_for_reconnect_or_shutdown (same wait shape)

This commit is contained in:
Teknium
2026-09-02 16:02:55 -07:00
parent 7be1f2abe0
commit 5f48aad2d8
+2 -17
View File
@@ -292,11 +292,8 @@ class MCPServerRunMixin:
self.name, self._recycled_reason,
)
self.session = None
await self._wait_for_lazy_reconnect()
if self._shutdown_event.is_set():
return False
self._reconnect_event.clear()
return True
# Dormant until a lazy call wakes it (untimed: nothing to self-probe).
return await self._wait_for_reconnect_or_shutdown() != "shutdown"
# Per-cycle chatter stays DEBUG; WARNINGs mark state transitions.
logger.debug(
"MCP server '%s': reconnecting (OAuth recovery or "
@@ -569,15 +566,3 @@ class MCPServerRunMixin:
registry.deregister(tool_name, scope=_core._server_registry_scope(self.name))
_core._forget_mcp_tool_server(tool_name)
self._registered_tool_names = []
async def _wait_for_lazy_reconnect(self) -> None:
"""Wait while an intentionally recycled stdio server is dormant."""
shutdown_task = asyncio.create_task(self._shutdown_event.wait())
reconnect_task = asyncio.create_task(self._reconnect_event.wait())
try:
await asyncio.wait(
{shutdown_task, reconnect_task},
return_when=asyncio.FIRST_COMPLETED,
)
finally:
await self._cancel_waiters(shutdown_task, reconnect_task)