tMerge branch 'network_walk' - electrum - Electrum Bitcoin wallet
HTML git clone https://git.parazyd.org/electrum
DIR Log
DIR Files
DIR Refs
DIR Submodules
---
DIR commit 25a460f855b29b10aeed591aca194d7b1d26b05f
DIR parent 5313591c28b942b118f572b83b97a786c398503a
HTML Author: ThomasV <thomasv@electrum.org>
Date: Fri, 15 Feb 2019 17:37:59 +0100
Merge branch 'network_walk'
Diffstat:
M electrum/network.py | 25 +++++++++++--------------
1 file changed, 11 insertions(+), 14 deletions(-)
---
DIR diff --git a/electrum/network.py b/electrum/network.py
t@@ -1188,24 +1188,21 @@ class Network(PrintError):
return parse_servers(await session.send_request('server.peers.subscribe'))
async def send_multiple_requests(self, servers: List[str], method: str, params: Sequence):
- num_connecting = len(self.connecting)
- for server in servers:
- self._start_interface(server)
- # sleep a bit
- for _ in range(10):
- if len(self.connecting) < num_connecting:
- break
- await asyncio.sleep(1)
responses = dict()
- async def get_response(iface: Interface):
+ async def get_response(server):
+ interface = Interface(self, server, self.proxy)
+ timeout = self.get_network_timeout_seconds(NetworkTimeout.Urgent)
+ try:
+ await asyncio.wait_for(interface.ready, timeout)
+ except BaseException as e:
+ await interface.close()
+ return
try:
- res = await iface.session.send_request(method, params, timeout=10)
+ res = await interface.session.send_request(method, params, timeout=10)
except Exception as e:
res = e
- responses[iface.server] = res
+ responses[interface.server] = res
async with TaskGroup() as group:
for server in servers:
- interface = self.interfaces.get(server)
- if interface:
- await group.spawn(get_response(interface))
+ await group.spawn(get_response(server))
return responses