Have network_proxy use ThreadJob framework
Rename WalletSynchronizer to Synchronizer so that diagnostic messages, which are based on class name, still refer to Synchronizer.
This commit is contained in:
parent
56654ec4e9
commit
01491dd1d0
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
|
Loading…
Reference in New Issue