Skip to content

Commit afe9dfa

Browse files
committed
tried another implementation
1 parent 9065a68 commit afe9dfa

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/mcp/shared/session.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ async def _receive_loop(self) -> None:
351351
self._read_stream,
352352
self._write_stream,
353353
):
354-
async with asyncio.TaskGroup() as tg:
354+
async with anyio.create_task_group() as tg:
355355
async for message in self._read_stream:
356356
if isinstance(message, Exception):
357357
await self._handle_incoming(message)
@@ -374,14 +374,14 @@ async def _receive_loop(self) -> None:
374374
message_metadata=message.metadata,
375375
)
376376

377-
self._in_flight[responder.request_id] = responder
378-
task = tg.create_task(self._received_request(responder))
379-
380-
def _callback(task: asyncio.Task[None]) -> None:
377+
async def _handle_received_request() -> None:
378+
await self._received_request(responder)
381379
if not responder._completed: # type: ignore[reportPrivateUsage]
382-
tg.create_task(self._handle_incoming(responder))
380+
await self._handle_incoming(responder)
383381

384-
task.add_done_callback(_callback)
382+
383+
self._in_flight[responder.request_id] = responder
384+
tg.start_soon(_handle_received_request)
385385

386386
elif isinstance(message.message.root, JSONRPCNotification):
387387
try:

0 commit comments

Comments
 (0)