diff --git a/src/sakia/core/net/api/bma/access.py b/src/sakia/core/net/api/bma/access.py index ce82c2831ec4353f7367f62e5d38bcb2eac6753e..5a8b9e0ce2150a1c8ddd6859096bb1dbeb303e2e 100644 --- a/src/sakia/core/net/api/bma/access.py +++ b/src/sakia/core/net/api/bma/access.py @@ -307,17 +307,19 @@ class BmaAccess(QObject): logging.debug("Trying to connect to : " + node.pubkey) conn_handler = node.endpoint.conn_handler() req = request(conn_handler, **req_args) - try: - reply = await req.post(**post_args) - replies.append(reply) - except ValueError as e: - if '404' in str(e) or '400' in str(e): - raise - except (ClientError, gaierror): - pass - except asyncio.TimeoutError: - pass + reply = asyncio.ensure_future(req.post(**post_args)) + replies.append(reply) self._invalidate_cache(request) else: raise NoPeerAvailable("", len(nodes)) - return tuple(replies) + + try: + result = await asyncio.gather(*replies) + except ValueError as e: + if '404' in str(e) or '400' in str(e): + raise + except (ClientError, gaierror): + pass + except asyncio.TimeoutError: + pass + return tuple(result)