Browse Source

close interfaces on shutdown

283
ThomasV 11 years ago
parent
commit
58c817f81a
  1. 2
      electrum
  2. 4
      lib/interface.py
  3. 7
      lib/network.py
  4. 7
      lib/network_proxy.py

2
electrum

@ -209,7 +209,7 @@ if __name__ == '__main__':
# we use daemon threads, their termination is enforced. # we use daemon threads, their termination is enforced.
# this sleep command gives them time to terminate cleanly. # this sleep command gives them time to terminate cleanly.
time.sleep(0.2) time.sleep(0.3)
sys.exit(0) sys.exit(0)
if cmd == 'daemon': if cmd == 'daemon':

4
lib/interface.py

@ -311,9 +311,9 @@ class TcpInterface(threading.Thread):
break break
self.process_response(response) self.process_response(response)
print_error("exit interface", self.server)
self.change_status() self.change_status()
print_error("closing connection:", self.server)
def change_status(self): def change_status(self):
# print_error( "change status", self.server, self.is_connected) # print_error( "change status", self.server, self.is_connected)
self.response_queue.put((self, None)) self.response_queue.put((self, None))

7
lib/network.py

@ -368,7 +368,7 @@ class Network(threading.Thread):
def run(self): def run(self):
while self.is_running(): while self.is_running():
try: try:
i, response = self.queue.get(0.1) #timeout = 30 if self.interfaces else 3) i, response = self.queue.get(timeout=0.1) #timeout = 30 if self.interfaces else 3)
except Queue.Empty: except Queue.Empty:
if len(self.interfaces) < self.num_server: if len(self.interfaces) < self.num_server:
self.start_random_interface() self.start_random_interface()
@ -404,6 +404,10 @@ class Network(threading.Thread):
if not self.interface.is_connected and self.config.get('auto_cycle'): if not self.interface.is_connected and self.config.get('auto_cycle'):
self.switch_to_random_interface() self.switch_to_random_interface()
print_error("Network: Stopping interfaces")
for i in self.interfaces.values():
i.stop()
def on_header(self, i, r): def on_header(self, i, r):
result = r.get('result') result = r.get('result')
@ -440,6 +444,7 @@ class Network(threading.Thread):
self.response_queue.put(r) self.response_queue.put(r)
def stop(self): def stop(self):
print_error("stopping network")
with self.lock: with self.lock:
self.running = False self.running = False

7
lib/network_proxy.py

@ -86,8 +86,9 @@ class NetworkProxy(threading.Thread):
break break
self.process(response) self.process(response)
print_error("NetworkProxy thread terminating") if self.network:
self.stop() self.network.stop()
print_error("NetworkProxy: terminating")
def process(self, response): def process(self, response):
if self.debug: if self.debug:
@ -215,8 +216,6 @@ class NetworkProxy(threading.Thread):
def stop(self): def stop(self):
self.running = False self.running = False
if self.network:
self.network.stop()
def stop_daemon(self): def stop_daemon(self):
return self.send([('daemon.stop',[])], None) return self.send([('daemon.stop',[])], None)

Loading…
Cancel
Save