mirror of
https://git.deluge-torrent.org/deluge
synced 2025-08-03 23:18:40 +00:00
Fix possible race condition when using force_call()
This commit is contained in:
parent
6b008d6c4d
commit
ab4dbff3e7
1 changed files with 4 additions and 0 deletions
|
@ -82,6 +82,8 @@ class CoreProxy(gobject.GObject):
|
||||||
def do_multicall(self, block=False):
|
def do_multicall(self, block=False):
|
||||||
if len(self._callbacks) == 0:
|
if len(self._callbacks) == 0:
|
||||||
return True
|
return True
|
||||||
|
# Remove the timer just in case this is a forced call..
|
||||||
|
gobject.source_remove(self._multi_timer)
|
||||||
|
|
||||||
if self._multi is not None and self.rpc_core is not None:
|
if self._multi is not None and self.rpc_core is not None:
|
||||||
try:
|
try:
|
||||||
|
@ -100,6 +102,8 @@ class CoreProxy(gobject.GObject):
|
||||||
self.set_core_uri(None)
|
self.set_core_uri(None)
|
||||||
finally:
|
finally:
|
||||||
self._callbacks = []
|
self._callbacks = []
|
||||||
|
# Re-enable the timer
|
||||||
|
self._multi_timer = gobject.timeout_add(200, self.do_multicall)
|
||||||
|
|
||||||
self._multi = xmlrpclib.MultiCall(self.rpc_core)
|
self._multi = xmlrpclib.MultiCall(self.rpc_core)
|
||||||
return True
|
return True
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue