mirror of
https://git.deluge-torrent.org/deluge
synced 2025-04-21 03:54:50 +00:00
Rewrote call to use maybeDeferred (this handles methods that return deferreds).
Fixes #1114.
This commit is contained in:
parent
9b97c6a578
commit
4dbc93b1fa
1 changed files with 4 additions and 11 deletions
|
@ -422,22 +422,15 @@ class DaemonClassicProxy(DaemonProxy):
|
|||
def call(self, method, *args, **kwargs):
|
||||
#log.debug("call: %s %s %s", method, args, kwargs)
|
||||
|
||||
d = defer.Deferred()
|
||||
import copy
|
||||
|
||||
try:
|
||||
m = self.__daemon.rpcserver.get_object_method(method)
|
||||
except Exception, e:
|
||||
log.exception(e)
|
||||
d.errback(e)
|
||||
return d
|
||||
|
||||
try:
|
||||
import copy
|
||||
result = m(*copy.deepcopy(args), **copy.deepcopy(kwargs))
|
||||
except Exception, e:
|
||||
d.errback(e)
|
||||
return defer.fail(e)
|
||||
else:
|
||||
d.callback(result)
|
||||
return d
|
||||
return defer.maybeDeferred(m, *copy.deepcopy(args), **copy.deepcopy(kwargs))
|
||||
|
||||
def register_event_handler(self, event, handler):
|
||||
"""
|
||||
|
|
Loading…
Add table
Reference in a new issue