electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit 3b357b6a6de7ff02c99328ec2a91679ca71c1788
parent d6b2cdd595781fb6cb47a518e33a633dee3f3fa5
Author: ThomasV <electrumdev@gmail.com>
Date:   Tue,  5 May 2015 13:44:42 +0200

Merge pull request #1192 from kyuupichan/if-cleanup3

Pass the response_queue to the constructor, not start().
Diffstat:
Mlib/interface.py | 13+++++--------
Mlib/network.py | 4++--
Mscripts/util.py | 4++--
3 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/lib/interface.py b/lib/interface.py @@ -31,13 +31,13 @@ from version import ELECTRUM_VERSION, PROTOCOL_VERSION from simple_config import SimpleConfig -def Interface(server, config = None): +def Interface(server, response_queue, config = None): """Interface factory function. The returned interface class handles the connection to a single remote electrum server. The object handles all necessary locking. It's exposed API is: - Inherits everything from threading.Thread. - - Member functions start(), send_request(), stop(), is_connected() + - Member functions send_request(), stop(), is_connected() - Member variable server. "is_connected()" is currently racy. "server" is constant for the object's lifetime and hence @@ -45,13 +45,13 @@ def Interface(server, config = None): """ host, port, protocol = server.split(':') if protocol in 'st': - return TcpInterface(server, config) + return TcpInterface(server, response_queue, config) else: raise Exception('Unknown protocol: %s'%protocol) class TcpInterface(threading.Thread): - def __init__(self, server, config = None): + def __init__(self, server, response_queue, config = None): threading.Thread.__init__(self) self.daemon = True self.config = config if config is not None else SimpleConfig() @@ -59,6 +59,7 @@ class TcpInterface(threading.Thread): self.connected = False self.debug = False # dump network messages. can be changed at runtime using the console self.message_id = 0 + self.response_queue = response_queue self.unanswered_requests = {} # are we waiting for a pong? self.is_ping = False @@ -275,10 +276,6 @@ class TcpInterface(threading.Thread): self.connected = False self.print_error("stopped") - def start(self, response_queue): - self.response_queue = response_queue - threading.Thread.start(self) - def run(self): self.s = self.get_socket() if self.s: diff --git a/lib/network.py b/lib/network.py @@ -271,9 +271,9 @@ class Network(util.DaemonThread): def start_interface(self, server): if server in self.interfaces.keys(): return - i = interface.Interface(server, self.config) + i = interface.Interface(server, self.queue, self.config) self.pending_servers.add(server) - i.start(self.queue) + i.start() return i def start_random_interface(self): diff --git a/scripts/util.py b/scripts/util.py @@ -25,10 +25,10 @@ def send_request(peers, request): # start interfaces q2 = Queue.Queue() config = SimpleConfig() - interfaces = map ( lambda server: Interface(server, config), peers ) + interfaces = map( lambda server: Interface(server, q2, config), peers ) reached_servers = [] for i in interfaces: - i.start(q2) + i.start() t0 = time.time() while peers: try: