bridge: added check that synchronous method does not return a deferred
This commit is contained in:
parent
19232e8a6b
commit
88d0fceb2a
2 changed files with 12 additions and 0 deletions
|
|
@ -42,6 +42,9 @@ class InternalError(dbus.DBusException):
|
|||
class AsyncNotDeferred(dbus.DBusException):
|
||||
_dbus_error_name = const_ERROR_PREFIX + ".AsyncNotDeferred"
|
||||
|
||||
class DeferredNotAsync(dbus.DBusException):
|
||||
_dbus_error_name = const_ERROR_PREFIX + ".DeferredNotAsync"
|
||||
|
||||
class GenericException(dbus.DBusException):
|
||||
def __init__(self, twisted_error):
|
||||
super(GenericException,self).__init__()
|
||||
|
|
@ -82,6 +85,9 @@ class DbusObject(dbus.service.Object):
|
|||
result.addCallback(callback)
|
||||
result.addErrback(lambda err:errback(GenericException(err)))
|
||||
else:
|
||||
if isinstance(result, Deferred):
|
||||
error("Synchrone method [%s] return a Deferred." % name)
|
||||
raise DeferredNotAsync
|
||||
return result
|
||||
|
||||
### signals ###
|
||||
|
|
|
|||
|
|
@ -42,6 +42,9 @@ class InternalError(dbus.DBusException):
|
|||
class AsyncNotDeferred(dbus.DBusException):
|
||||
_dbus_error_name = const_ERROR_PREFIX + ".AsyncNotDeferred"
|
||||
|
||||
class DeferredNotAsync(dbus.DBusException):
|
||||
_dbus_error_name = const_ERROR_PREFIX + ".DeferredNotAsync"
|
||||
|
||||
class GenericException(dbus.DBusException):
|
||||
def __init__(self, twisted_error):
|
||||
super(GenericException,self).__init__()
|
||||
|
|
@ -82,6 +85,9 @@ class DbusObject(dbus.service.Object):
|
|||
result.addCallback(callback)
|
||||
result.addErrback(lambda err:errback(GenericException(err)))
|
||||
else:
|
||||
if isinstance(result, Deferred):
|
||||
error("Synchrone method [%s] return a Deferred." % name)
|
||||
raise DeferredNotAsync
|
||||
return result
|
||||
|
||||
### signals ###
|
||||
|
|
|
|||
Loading…
Reference in a new issue