init_headers in daemon thread, and fix #1996

This commit is contained in:
ThomasV 2016-10-24 14:57:02 +02:00
parent bfe7e9dc6e
commit 8249f5ab67
4 changed files with 15 additions and 4 deletions

View File

@ -43,9 +43,9 @@ from electrum.paymentrequest import InvoiceStore
from electrum.contacts import Contacts
from electrum.synchronizer import Synchronizer
from electrum.verifier import SPV
from electrum.util import DebugMem
from electrum.util import DebugMem, UserCancelled
from electrum.wallet import Abstract_Wallet
from installwizard import InstallWizard
from installwizard import InstallWizard, GoBack
try:
@ -191,6 +191,10 @@ class ElectrumGui:
def main(self):
try:
self.init_network()
except UserCancelled:
return
except GoBack:
return
except:
traceback.print_exc(file=sys.stdout)
return

View File

@ -396,6 +396,7 @@ class InstallWizard(QDialog, MessageBoxMixin, BaseWizard):
choices = [_("Auto connect"), _("Select server manually")]
title = _("How do you want to connect to a server? ")
clayout = ChoicesLayout(message, choices)
self.back_button.setText(_('Cancel'))
self.set_main_layout(clayout.layout(), title)
r = clayout.selected_index()
if r == 0:

View File

@ -112,7 +112,8 @@ class Blockchain(util.PrintError):
import urllib, socket
socket.setdefaulttimeout(30)
self.print_error("downloading ", self.headers_url)
urllib.urlretrieve(self.headers_url, filename)
urllib.urlretrieve(self.headers_url, filename + '.tmp')
os.rename(filename + '.tmp', filename)
self.print_error("done.")
except Exception:
self.print_error("download failed. creating file", filename)

View File

@ -813,7 +813,12 @@ class Network(util.DaemonThread):
self.process_responses(interface)
def run(self):
self.blockchain.init()
import threading
t = threading.Thread(target = self.blockchain.init)
t.daemon = True
t.start()
while t.isAlive() and self.is_running():
t.join(1)
while self.is_running():
self.maintain_sockets()
self.wait_on_sockets()