URI: 
       tPlugins: start thread at end of constructor - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 93e0c72ce2baff53b8e15b398ffaf6f31b4da35c
   DIR parent 028ab925ed5a1b4686861151042a2e93af49d2af
  HTML Author: Neil Booth <kyuupichan@gmail.com>
       Date:   Sun, 24 Jan 2016 19:59:58 +0900
       
       Plugins: start thread at end of constructor
       
       Don't add jobs twice
       
       Diffstat:
         M electrum                            |       2 --
         M lib/plugins.py                      |      10 +++++-----
       
       2 files changed, 5 insertions(+), 7 deletions(-)
       ---
   DIR diff --git a/electrum b/electrum
       t@@ -330,7 +330,6 @@ if __name__ == '__main__':
                    if not config.get('offline'):
                        network = Network(config)
                        network.start()
       -                plugins.start()
                    else:
                        network = None
                    daemon = Daemon(config, network)
       t@@ -353,7 +352,6 @@ if __name__ == '__main__':
                        if p == 0:
                            network = Network(config)
                            network.start()
       -                    plugins.start()
                            daemon = Daemon(config, network)
                            if config.get('websocket_server'):
                                from electrum import websockets
   DIR diff --git a/lib/plugins.py b/lib/plugins.py
       t@@ -46,11 +46,14 @@ class Plugins(DaemonThread):
                self.gui_name = gui_name
                self.descriptions = {}
                self.device_manager = DeviceMgr()
       +        self.load_plugins()
       +        self.start()
        
       +    def load_plugins(self):
                for loader, name, ispkg in pkgutil.iter_modules([self.pkgpath]):
                    m = loader.find_module(name).load_module(name)
                    d = m.__dict__
       -            gui_good = gui_name in d.get('available_for', [])
       +            gui_good = self.gui_name in d.get('available_for', [])
                    # We register wallet types even if the GUI isn't provided
                    # otherwise the user gets a misleading message like
                    # "Unknown wallet type: 2fa"
       t@@ -60,7 +63,7 @@ class Plugins(DaemonThread):
                    if not gui_good:
                        continue
                    self.descriptions[name] = d
       -            if not d.get('requires_wallet_type') and config.get('use_' + name):
       +            if not d.get('requires_wallet_type') and self.config.get('use_' + name):
                        try:
                            self.load_plugin(name)
                        except BaseException as e:
       t@@ -151,9 +154,6 @@ class Plugins(DaemonThread):
                return self.plugins[name]
        
            def run(self):
       -        jobs = [job for plugin in self.plugins.values()
       -                for job in plugin.thread_jobs()]
       -        self.add_jobs(jobs)
                while self.is_running():
                    time.sleep(0.1)
                    self.run_jobs()