diff options
Diffstat (limited to 'pyload/manager')
-rw-r--r-- | pyload/manager/AddonManager.py | 12 | ||||
-rw-r--r-- | pyload/manager/event/Scheduler.py | 7 |
2 files changed, 10 insertions, 9 deletions
diff --git a/pyload/manager/AddonManager.py b/pyload/manager/AddonManager.py index 5ad62f515..a394373a9 100644 --- a/pyload/manager/AddonManager.py +++ b/pyload/manager/AddonManager.py @@ -20,8 +20,7 @@ import __builtin__ import traceback -from thread import start_new_thread -from threading import RLock +from threading import RLock, Thread from types import MethodType @@ -149,7 +148,6 @@ class AddonManager: self.deactivateAddon(plugin) def activateAddon(self, plugin): - #check if already loaded for inst in self.plugins: if inst.__name__ == plugin: @@ -166,10 +164,12 @@ class AddonManager: self.pluginMap[pluginClass.__name__] = plugin # call core Ready - start_new_thread(plugin.coreReady, tuple()) + t = Thread(target=plugin.coreReady) + t.setDaemon(True) + t.start() - def deactivateAddon(self, plugin): + def deactivateAddon(self, plugin): addon = None for inst in self.plugins: if inst.__name__ == plugin: @@ -253,7 +253,7 @@ class AddonManager: self.dispatchEvent("afterReconnecting", ip) def startThread(self, function, *args, **kwargs): - t = AddonThread(self.core.threadManager, function, args, kwargs) + return AddonThread(self.core.threadManager, function, args, kwargs) def activePlugins(self): """ returns all active plugins """ diff --git a/pyload/manager/event/Scheduler.py b/pyload/manager/event/Scheduler.py index 71b5f96af..39dfbc3cc 100644 --- a/pyload/manager/event/Scheduler.py +++ b/pyload/manager/event/Scheduler.py @@ -19,8 +19,7 @@ from time import time from heapq import heappop, heappush -from thread import start_new_thread -from threading import Lock +from threading import Lock, Thread class AlreadyCalled(Exception): pass @@ -106,7 +105,9 @@ class Job: def start(self): if self.threaded: - start_new_thread(self.run, ()) + t = Thread(target=self.run) + t.setDaemon(True) + t.start() else: self.run() |