URI: 
       tHave network_proxy use ThreadJob framework - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 01491dd1d07f35508973e36f43d228e835468fea
   DIR parent 56654ec4e984e14990813ab034ab2c6873558cea
  HTML Author: Neil Booth <kyuupichan@gmail.com>
       Date:   Wed, 26 Aug 2015 16:50:40 +0900
       
       Have network_proxy use ThreadJob framework
       
       Rename WalletSynchronizer to Synchronizer so that diagnostic messages,
       which are based on class name, still refer to Synchronizer.
       
       Diffstat:
         M lib/__init__.py                     |       2 +-
         M lib/network_proxy.py                |       4 +---
         M lib/synchronizer.py                 |      12 +++---------
         M lib/wallet.py                       |       8 ++++----
       
       4 files changed, 9 insertions(+), 17 deletions(-)
       ---
   DIR diff --git a/lib/__init__.py b/lib/__init__.py
       t@@ -1,6 +1,6 @@
        from version import ELECTRUM_VERSION
        from util import format_satoshis, print_msg, print_json, print_error, set_verbosity
       -from wallet import WalletSynchronizer, WalletStorage
       +from wallet import Synchronizer, WalletStorage
        from wallet import Wallet, Imported_Wallet
        from network import Network, DEFAULT_SERVERS, DEFAULT_PORTS, pick_random_server
        from interface import Interface
   DIR diff --git a/lib/network_proxy.py b/lib/network_proxy.py
       t@@ -60,15 +60,13 @@ class NetworkProxy(util.DaemonThread):
                self.blockchain_height = 0
                self.server_height = 0
                self.interfaces = []
       -        self.jobs = []
                # value returned by estimatefee
                self.fee = None
        
        
            def run(self):
                while self.is_running():
       -            for job in self.jobs:
       -                job()
       +            self.run_jobs()    # Synchronizer, for now
                    try:
                        response = self.pipe.get()
                    except util.timeout:
   DIR diff --git a/lib/synchronizer.py b/lib/synchronizer.py
       t@@ -21,10 +21,10 @@ from threading import Lock
        
        from bitcoin import Hash, hash_encode
        from transaction import Transaction
       -from util import print_error, print_msg
       +from util import print_error, print_msg, ThreadJob
        
        
       -class WalletSynchronizer():
       +class Synchronizer(ThreadJob):
            '''The synchronizer keeps the wallet up-to-date with its set of
            addresses and their transactions.  It subscribes over the network
            to wallet addresses, gets the wallet to generate new addresses
       t@@ -46,12 +46,6 @@ class WalletSynchronizer():
                self.lock = Lock()
                self.initialize()
        
       -    def print_error(self, *msg):
       -        print_error("[Synchronizer]", *msg)
       -
       -    def print_msg(self, *msg):
       -        print_msg("[Synchronizer]", *msg)
       -
            def parse_response(self, response):
                if response.get('error'):
                    self.print_error("response error:", response)
       t@@ -165,7 +159,7 @@ class WalletSynchronizer():
                    self.print_error("missing tx", self.requested_tx)
                self.subscribe_to_addresses(set(self.wallet.addresses(True)))
        
       -    def main_loop(self):
       +    def run(self):
                '''Called from the network proxy thread main loop.'''
                # 1. Create new addresses
                self.wallet.synchronize()
   DIR diff --git a/lib/wallet.py b/lib/wallet.py
       t@@ -38,7 +38,7 @@ from version import *
        from transaction import Transaction
        from plugins import run_hook
        import bitcoin
       -from synchronizer import WalletSynchronizer
       +from synchronizer import Synchronizer
        from mnemonic import Mnemonic
        
        import paymentrequest
       t@@ -1110,8 +1110,8 @@ class Abstract_Wallet(object):
                    self.verifier = SPV(self.network, self)
                    self.verifier.start()
                    self.set_verifier(self.verifier)
       -            self.synchronizer = WalletSynchronizer(self, network)
       -            network.jobs.append(self.synchronizer.main_loop)
       +            self.synchronizer = Synchronizer(self, network)
       +            network.add_job(self.synchronizer)
                else:
                    self.verifier = None
                    self.synchronizer = None
       t@@ -1119,7 +1119,7 @@ class Abstract_Wallet(object):
            def stop_threads(self):
                if self.network:
                    self.verifier.stop()
       -            self.network.jobs.remove(self.synchronizer.main_loop)
       +            self.network.remove_job(self.synchronizer)
                    self.synchronizer = None
                    self.storage.put('stored_height', self.get_local_height(), True)