Browse Source

Use less task groups now aiorpcx (0.10.4) is fixed

patch-2
Neil Booth 6 years ago
parent
commit
9f4fc12db1
  1. 4
      electrumx/server/controller.py
  2. 14
      electrumx/server/session.py
  3. 2
      setup.py

4
electrumx/server/controller.py

@ -82,8 +82,8 @@ class Controller(ServerBase):
'''Start the RPC server and wait for the mempool to synchronize. Then
start serving external clients.
'''
if not (0, 10, 3) <= aiorpcx_version < (0, 11):
raise RuntimeError('aiorpcX version 0.10.x, x >= 3, required')
if not (0, 10, 4) <= aiorpcx_version < (0, 11):
raise RuntimeError('aiorpcX version 0.10.x, x >= 4, required')
env = self.env
min_str, max_str = env.coin.SESSIONCLS.protocol_min_max_strings()

14
electrumx/server/session.py

@ -262,9 +262,8 @@ class SessionManager(object):
for session in stale_sessions)
self.logger.info(f'closing stale connections {text}')
# Give the sockets some time to close gracefully
async with TaskGroup() as group:
for session in stale_sessions:
await group.spawn(session.close())
for session in stale_sessions:
await session.spawn(session.close())
# Consolidate small groups
bw_limit = self.env.bandwidth_limit
@ -510,11 +509,12 @@ class SessionManager(object):
await group.spawn(self._log_sessions())
await group.spawn(self._manage_servers())
finally:
# Close servers and sessions
# Close servers then sessions
await self._close_servers(list(self.servers.keys()))
async with TaskGroup() as group:
for session in self.sessions:
await group.spawn(session.close(force_after=1))
for session in list(self.sessions):
await session.spawn(session.close(force_after=1))
for session in list(self.sessions):
await session.closed_event.wait()
def session_count(self):
'''The number of connections that we've sent something to.'''

2
setup.py

@ -14,7 +14,7 @@ setuptools.setup(
# "xevan_hash" package is required to sync Xuez network.
# "groestlcoin_hash" package is required to sync Groestlcoin network.
# "pycryptodomex" package is required to sync SmartCash network.
install_requires=['aiorpcX>=0.10.3,<0.11', 'attrs',
install_requires=['aiorpcX>=0.10.4,<0.11', 'attrs',
'plyvel', 'pylru', 'aiohttp >= 2'],
packages=setuptools.find_packages(include=('electrumx*',)),
description='ElectrumX Server',

Loading…
Cancel
Save