URI: 
       tinterface: split run_fetch_blocks - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 8ee1f140d8a530e5cb41ff204aa09cfef149f0b4
   DIR parent f9a5f2e1835e8326d1d030a6e79bd148455ee6be
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Wed, 19 Sep 2018 20:30:54 +0200
       
       interface: split run_fetch_blocks
       
       The 'continue' in the middle was too easy to miss.
       We want a 'network_updated' trigger from every interface,
       not just the fastest.
       
       Diffstat:
         M electrum/interface.py               |      22 +++++++++++++---------
       
       1 file changed, 13 insertions(+), 9 deletions(-)
       ---
   DIR diff --git a/electrum/interface.py b/electrum/interface.py
       t@@ -385,18 +385,22 @@ class Interface(PrintError):
                    if self.tip < constants.net.max_checkpoint():
                        raise GracefulDisconnect('server tip below max checkpoint')
                    self.mark_ready()
       -            async with self.network.bhi_lock:
       -                if self.blockchain.height() >= height and self.blockchain.check_header(header):
       -                    # another interface amended the blockchain
       -                    self.print_error("skipping header", height)
       -                    continue
       -                _, height = await self.step(height, header)
       -                # in the simple case, height == self.tip+1
       -                if height <= self.tip:
       -                    await self.sync_until(height)
       +            await self._process_header_at_tip()
                    self.network.trigger_callback('network_updated')
                    self.network.switch_lagging_interface()
        
       +    async def _process_header_at_tip(self):
       +        height, header = self.tip, self.tip_header
       +        async with self.network.bhi_lock:
       +            if self.blockchain.height() >= height and self.blockchain.check_header(header):
       +                # another interface amended the blockchain
       +                self.print_error("skipping header", height)
       +                return
       +            _, height = await self.step(height, header)
       +            # in the simple case, height == self.tip+1
       +            if height <= self.tip:
       +                await self.sync_until(height)
       +
            async def sync_until(self, height, next_height=None):
                if next_height is None:
                    next_height = self.tip