From 46a2fa7074e2a57d6a344f4a8257c9f7721d350f Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Wed, 20 Aug 2025 10:48:41 -0400 Subject: [PATCH] Always pass a `tn` to `._server._serve_ipc_eps()` Turns out we weren't despite the optional `stream_handler_nursery` input to `Server.listen_on()`; fail over to the `Server._stream_handler_tn` allocated during server setup in those cases. --- tractor/ipc/_server.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/tractor/ipc/_server.py b/tractor/ipc/_server.py index 46fde2fc..55374b0a 100644 --- a/tractor/ipc/_server.py +++ b/tractor/ipc/_server.py @@ -1001,7 +1001,11 @@ class Server(Struct): partial( _serve_ipc_eps, server=self, - stream_handler_tn=stream_handler_nursery, + stream_handler_tn=( + stream_handler_nursery + or + self._stream_handler_tn + ), listen_addrs=accept_addrs, ) ) @@ -1145,13 +1149,17 @@ async def open_ipc_server( async with maybe_open_nursery( nursery=parent_tn, - ) as rent_tn: + ) as parent_tn: no_more_peers = trio.Event() no_more_peers.set() ipc_server = IPCServer( - _parent_tn=rent_tn, - _stream_handler_tn=stream_handler_tn or rent_tn, + _parent_tn=parent_tn, + _stream_handler_tn=( + stream_handler_tn + or + parent_tn + ), _no_more_peers=no_more_peers, ) try: