Fix signalreceiver when switching between daemons
This commit is contained in:
parent
8597110e02
commit
7128b129d4
@ -48,10 +48,9 @@ class Signals(component.Component):
|
|||||||
self.config.save()
|
self.config.save()
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
if not client.is_localhost():
|
self.receiver.set_remote(not client.is_localhost())
|
||||||
self.receiver.set_remote(True)
|
|
||||||
|
|
||||||
self.receiver.run()
|
self.receiver.run()
|
||||||
|
|
||||||
self.receiver.connect_to_signal("torrent_added",
|
self.receiver.connect_to_signal("torrent_added",
|
||||||
self.torrent_added_signal)
|
self.torrent_added_signal)
|
||||||
self.receiver.connect_to_signal("torrent_removed",
|
self.receiver.connect_to_signal("torrent_removed",
|
||||||
@ -83,7 +82,7 @@ class Signals(component.Component):
|
|||||||
self.receiver.shutdown()
|
self.receiver.shutdown()
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def connect_to_signal(self, signal, callback):
|
def connect_to_signal(self, signal, callback):
|
||||||
"""Connects a callback to a signal"""
|
"""Connects a callback to a signal"""
|
||||||
self.receiver.connect_to_signal(signal, callback)
|
self.receiver.connect_to_signal(signal, callback)
|
||||||
|
|||||||
@ -51,7 +51,6 @@ class SignalReceiver(ThreadingMixIn, SimpleXMLRPCServer.SimpleXMLRPCServer):
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
log.debug("SignalReceiver init..")
|
log.debug("SignalReceiver init..")
|
||||||
# Set to true so that the receiver thread will exit
|
# Set to true so that the receiver thread will exit
|
||||||
self._shutdown = False
|
|
||||||
|
|
||||||
self.signals = {}
|
self.signals = {}
|
||||||
self.emitted_signals = []
|
self.emitted_signals = []
|
||||||
@ -89,6 +88,7 @@ class SignalReceiver(ThreadingMixIn, SimpleXMLRPCServer.SimpleXMLRPCServer):
|
|||||||
|
|
||||||
def shutdown(self):
|
def shutdown(self):
|
||||||
"""Shutdowns receiver thread"""
|
"""Shutdowns receiver thread"""
|
||||||
|
log.debug("Shutting down signalreceiver")
|
||||||
self._shutdown = True
|
self._shutdown = True
|
||||||
# De-register with the daemon so it doesn't try to send us more signals
|
# De-register with the daemon so it doesn't try to send us more signals
|
||||||
try:
|
try:
|
||||||
@ -96,8 +96,6 @@ class SignalReceiver(ThreadingMixIn, SimpleXMLRPCServer.SimpleXMLRPCServer):
|
|||||||
client.force_call()
|
client.force_call()
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
log.debug("Unable to deregister client from server: %s", e)
|
log.debug("Unable to deregister client from server: %s", e)
|
||||||
|
|
||||||
log.debug("Shutting down signalreceiver")
|
|
||||||
|
|
||||||
self.socket.shutdown(socket.SHUT_RDWR)
|
self.socket.shutdown(socket.SHUT_RDWR)
|
||||||
log.debug("Joining listening thread..")
|
log.debug("Joining listening thread..")
|
||||||
@ -111,6 +109,7 @@ class SignalReceiver(ThreadingMixIn, SimpleXMLRPCServer.SimpleXMLRPCServer):
|
|||||||
def run(self):
|
def run(self):
|
||||||
"""This gets called when we start the thread"""
|
"""This gets called when we start the thread"""
|
||||||
# Register the signal receiver with the core
|
# Register the signal receiver with the core
|
||||||
|
self._shutdown = False
|
||||||
client.register_client(str(self.port))
|
client.register_client(str(self.port))
|
||||||
|
|
||||||
self.listening_thread = threading.Thread(target=self.handle_thread)
|
self.listening_thread = threading.Thread(target=self.handle_thread)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user