From e2d583dd146a8d61aff80202e7fcd137a84ff5aa Mon Sep 17 00:00:00 2001 From: Neil Booth Date: Mon, 5 Nov 2018 18:41:08 -0400 Subject: [PATCH] Fix prior; can't spawn a close() call --- electrumx/server/session.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/electrumx/server/session.py b/electrumx/server/session.py index 1e6d967..974d6c7 100644 --- a/electrumx/server/session.py +++ b/electrumx/server/session.py @@ -262,8 +262,9 @@ class SessionManager(object): for session in stale_sessions) self.logger.info(f'closing stale connections {text}') # Give the sockets some time to close gracefully - for session in stale_sessions: - await session.spawn(session.close()) + async with TaskGroup() as group: + for session in stale_sessions: + await group.spawn(session.close()) # Consolidate small groups bw_limit = self.env.bandwidth_limit @@ -288,7 +289,7 @@ class SessionManager(object): 'errors': sum(s.errors for s in self.sessions), 'groups': len(group_map), 'logged': len([s for s in self.sessions if s.log_me]), - 'paused': sum(not s.can_send.is_set() for s in self.sessions), + 'paused': sum(not s._can_send.is_set() for s in self.sessions), 'pid': os.getpid(), 'peers': self.peer_mgr.info(), 'requests': sum(s.count_pending_items() for s in self.sessions), @@ -511,8 +512,9 @@ class SessionManager(object): finally: # Close servers and sessions await self._close_servers(list(self.servers.keys())) - for session in self.sessions: - await session.spawn(session.close(force_after=1)) + async with TaskGroup() as group: + for session in self.sessions: + await group.spawn(session.close(force_after=1)) def session_count(self): '''The number of connections that we've sent something to.'''