URI: 
       tno daemon - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 9afbf211973840cfdc794b1342e27cb7f71da6c8
   DIR parent 0ad7f72d3d2a2f473916ade21db5bfc680d7d0d2
  HTML Author: ThomasV <thomasv@gitorious>
       Date:   Sat, 24 Nov 2012 20:31:07 +0100
       
       no daemon
       
       Diffstat:
         M electrum                            |       7 +++++--
         M lib/interface.py                    |       5 +++++
         M lib/verifier.py                     |       4 +++-
         M lib/wallet.py                       |      11 ++++-------
       
       4 files changed, 17 insertions(+), 10 deletions(-)
       ---
   DIR diff --git a/electrum b/electrum
       t@@ -230,7 +230,8 @@ if __name__ == '__main__':
        
                verifier = WalletVerifier(interface, config)
                wallet.set_verifier(verifier)
       -        WalletSynchronizer(wallet, config).start()
       +        synchronizer = WalletSynchronizer(wallet, config)
       +        synchronizer.start()
        
                if not found and a == 'restore' and s is not None:
                    try:
       t@@ -250,9 +251,11 @@ if __name__ == '__main__':
                verifier.start()
                gui.main(url)
                wallet.save()
       +
                verifier.stop()
                synchronizer.stop()
       -        #interface.stop()
       +        interface.stop()
       +
                sys.exit(0)
        
            if cmd not in known_commands:
   DIR diff --git a/lib/interface.py b/lib/interface.py
       t@@ -495,6 +495,11 @@ class Interface(threading.Thread):
                    self.is_connected = False  # this exits the polling loop
                    self.trigger_callback('disconnecting') # for actively disconnecting
        
       +    def stop(self):
       +        if self.protocol in 'st' and self.s:
       +            self.s.shutdown(socket.SHUT_RDWR)
       +            self.s.close()
       +
        
            def get_servers_list(self):
                plist = {}
   DIR diff --git a/lib/verifier.py b/lib/verifier.py
       t@@ -65,6 +65,7 @@ class WalletVerifier(threading.Thread):
        
            def stop(self):
                with self.lock: self.running = False
       +        self.interface.poke('verifier')
        
            def is_running(self):
                with self.lock: return self.running
       t@@ -126,9 +127,10 @@ class WalletVerifier(threading.Thread):
                                self.pending_headers.remove(header)
        
                    try:
       -                r = self.interface.get_response('verifier',timeout=0.1)
       +                r = self.interface.get_response('verifier',timeout=1)
                    except Queue.Empty:
                        continue
       +            if not r: continue
        
                    # 3. handle response
                    method = r['method']
   DIR diff --git a/lib/wallet.py b/lib/wallet.py
       t@@ -1165,6 +1165,7 @@ class WalletSynchronizer(threading.Thread):
        
            def stop(self):
                with self.lock: self.running = False
       +        self.interface.poke('synchronizer')
        
            def is_running(self):
                with self.lock: return self.running
       t@@ -1233,14 +1234,10 @@ class WalletSynchronizer(threading.Thread):
                        self.was_updated = False
        
                    # 2. get a response
       -            try:
       -                r = self.interface.get_response('synchronizer', timeout=0.1)
       -            except:
       -                continue
       +            r = self.interface.get_response('synchronizer')
        
       -            # poke sends None. (check if still needed)
       -            if not r: 
       -                continue
       +            # poke sends None. (needed during stop)
       +            if not r: continue
        
                    # 3. handle response
                    method = r['method']