SwarmConn: don't access Swarm.manager

Open a local nursery instead.
This commit is contained in:
mhchia 2020-02-04 21:57:11 +08:00
parent 0548d28568
commit f884bfa39e
No known key found for this signature in database
GPG Key ID: 389EFBEA1362589A

View File

@ -56,13 +56,14 @@ class SwarmConn(INetConn):
async def _handle_new_streams(self) -> None: async def _handle_new_streams(self) -> None:
self.event_started.set() self.event_started.set()
async with trio.open_nursery() as nursery:
while True: while True:
try: try:
stream = await self.muxed_conn.accept_stream() stream = await self.muxed_conn.accept_stream()
except MuxedConnUnavailable: except MuxedConnUnavailable:
break break
# Asynchronously handle the accepted stream, to avoid blocking the next stream. # Asynchronously handle the accepted stream, to avoid blocking the next stream.
self.swarm.manager.run_task(self._handle_muxed_stream, stream) nursery.start_soon(self._handle_muxed_stream, stream)
await self.close() await self.close()