diff --git a/electrum/address_synchronizer.py b/electrum/address_synchronizer.py index 4793074d4..a4e3bc776 100644 --- a/electrum/address_synchronizer.py +++ b/electrum/address_synchronizer.py @@ -28,7 +28,7 @@ from collections import defaultdict from . import bitcoin from .bitcoin import COINBASE_MATURITY, TYPE_ADDRESS, TYPE_PUBKEY -from .util import PrintError, profiler, bfh, VerifiedTxInfo, TxMinedStatus, aiosafe, CustomTaskGroup +from .util import PrintError, profiler, bfh, VerifiedTxInfo, TxMinedStatus, aiosafe, SilentTaskGroup from .transaction import Transaction, TxOutput from .synchronizer import Synchronizer from .verifier import SPV @@ -157,7 +157,7 @@ class AddressSynchronizer(PrintError): self.verifier = SPV(self.network, self) self.synchronizer = synchronizer = Synchronizer(self) assert self.group is None, 'group already exists' - self.group = CustomTaskGroup() + self.group = SilentTaskGroup() async def job(): async with self.group as group: diff --git a/electrum/interface.py b/electrum/interface.py index 52b54d7c5..d7383dd35 100644 --- a/electrum/interface.py +++ b/electrum/interface.py @@ -34,7 +34,7 @@ from collections import defaultdict import aiorpcx from aiorpcx import ClientSession, Notification -from .util import PrintError, aiosafe, bfh, AIOSafeSilentException, CustomTaskGroup +from .util import PrintError, aiosafe, bfh, AIOSafeSilentException, SilentTaskGroup from . import util from . import x509 from . import pem @@ -139,7 +139,7 @@ class Interface(PrintError): # TODO combine? self.fut = asyncio.get_event_loop().create_task(self.run()) - self.group = CustomTaskGroup() + self.group = SilentTaskGroup() if proxy: username, pw = proxy.get('user'), proxy.get('password') diff --git a/electrum/util.py b/electrum/util.py index 1a79f7bd2..c9fbf72ea 100644 --- a/electrum/util.py +++ b/electrum/util.py @@ -868,10 +868,11 @@ def make_aiohttp_session(proxy): return aiohttp.ClientSession(headers={'User-Agent' : 'Electrum'}, timeout=aiohttp.ClientTimeout(total=10)) -class CustomTaskGroup(TaskGroup): +class SilentTaskGroup(TaskGroup): - def spawn(self, *args, **kwargs): + def spawn(self, *args, report_crash=None, **kwargs): # don't complain if group is already closed. if self._closed: raise asyncio.CancelledError() - return super().spawn(*args, **kwargs) + # ignore value of report_crash, and force it to False + return super().spawn(*args, **kwargs, report_crash=False)