From ffed45f99715f9919d2ec6efb72e972117ca01d8 Mon Sep 17 00:00:00 2001 From: Luc Yriarte Date: Tue, 31 Jul 2012 16:16:58 +0200 Subject: [PATCH] dbus-send: defer dbus call --- dbus-tools/dbus-send.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/dbus-tools/dbus-send.py b/dbus-tools/dbus-send.py index b885fb6..b5586e0 100644 --- a/dbus-tools/dbus-send.py +++ b/dbus-tools/dbus-send.py @@ -51,14 +51,26 @@ class DbusSendService: else: raise Exception("Error: invalid bus: %s" % list[0]) + # parse JSON arg list self.args = [] if len(list) == 6: self.args = json.loads(list[5]) + # get dbus proxy self.object = self.bus.get_object(list[1], list[2]) self.method = self.object.get_dbus_method(list[4], list[3]) - result = self.method(*self.args) + # defer dbus call + request = defer.Deferred() + reactor.callLater(0, request.callback, self.dbusCallback(self.args)) + + return request + + + def dbusCallback(self, list): + # call dbus method + result = self.method(*list) + # return JSON string result return json.dumps(result) -- 2.7.4