optional wait parameter for interface
authorecdsa <ecdsa@github>
Sun, 10 Mar 2013 09:24:42 +0000 (10:24 +0100)
committerecdsa <ecdsa@github>
Sun, 10 Mar 2013 09:24:42 +0000 (10:24 +0100)
electrum
lib/interface.py

index 11e1017..ce81f03 100755 (executable)
--- a/electrum
+++ b/electrum
@@ -124,7 +124,7 @@ if __name__ == '__main__':
         
         interface = Interface(config, True)
         wallet.interface = interface
-        interface.start()
+        interface.start(wait = False)
         interface.send([('server.peers.subscribe',[])])
 
         gui = gui.ElectrumGui(wallet, config)
@@ -239,11 +239,7 @@ if __name__ == '__main__':
 
             if not options.offline:
                 interface = Interface(config)
-                interface.start()
-                interface.connect_event.wait()
-                if not interface.is_connected:
-                    print_msg("Not connected, aborting.")
-                    sys.exit(1)
+                interface.start(wait=True)
                 wallet.interface = interface
                 verifier = WalletVerifier(interface, config)
                 wallet.set_verifier(verifier)
@@ -361,11 +357,6 @@ if __name__ == '__main__':
         interface = Interface(config)
         interface.register_callback('connected', lambda: sys.stderr.write("Connected to " + interface.connection_msg + "\n"))
         interface.start()
-        # wait until connected
-        interface.connect_event.wait()
-        if not interface.is_connected:
-            print_msg("Not connected, aborting.")
-            sys.exit(1)
         wallet.interface = interface
         verifier = WalletVerifier(interface, config)
         wallet.set_verifier(verifier)
index 99a50bf..59f205a 100644 (file)
@@ -586,6 +586,15 @@ class Interface(threading.Thread):
         return out
 
 
+    def start(self, wait=True):
+        threading.Thread.start(self)
+        if wait:
+            # wait until connection is established
+            self.connect_event.wait()
+            if not self.is_connected:
+                print_msg("Not connected, aborting.")
+                sys.exit(1)
+
     def run(self):
         while True:
             self.init_interface()