2004-05-27 Seth Nickell <seth@gnome.org>
authorSeth Nickell <seth@gnome.org>
Fri, 28 May 2004 02:16:11 +0000 (02:16 +0000)
committerSeth Nickell <seth@gnome.org>
Fri, 28 May 2004 02:16:11 +0000 (02:16 +0000)
* python/dbus.py:
* python/dbus_bindings.pyx.in:

Fix failure to notify that a signal was not handled,
resulted in hung functions.

ChangeLog
python/dbus.py
python/dbus_bindings.pyx.in

index 2105b59..9824f2b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2004-05-27  Seth Nickell  <seth@gnome.org>
+
+       * python/dbus.py:
+       * python/dbus_bindings.pyx.in:
+
+       Fix failure to notify that a signal was not handled,
+       resulted in hung functions.
+       
 2004-05-25  Colin Walters  <walters@redhat.com>
 
        * tools/dbus-monitor.c (main): Monitor all types of messages.
index 3a997da..883d9e6 100644 (file)
@@ -53,6 +53,8 @@ class Bus:
     TYPE_SYSTEM     = dbus_bindings.BUS_SYSTEM
     TYPE_ACTIVATION = dbus_bindings.BUS_ACTIVATION
 
+    """bus_type=[Bus.TYPE_SESSION | Bus.TYPE_SYSTEM | Bus.TYPE_ACTIVATION]
+    """
     def __init__(self, bus_type=TYPE_SESSION, glib_mainloop=True):
         self._connection = dbus_bindings.bus_get(bus_type)
 
@@ -100,7 +102,7 @@ class Bus:
     
     def _signal_func(self, connection, message):
         if (message.get_type() != dbus_bindings.MESSAGE_TYPE_SIGNAL):
-            return
+            return dbus_bindings.HANDLER_RESULT_NOT_YET_HANDLED
         
         interface = message.get_interface()
         service   = message.get_sender()
@@ -114,7 +116,7 @@ class Bus:
             args = [interface, member, service, path, message]
             for receiver in receivers:
                 receiver(*args)
-        
+
 
 class RemoteObject:
     """A remote Object.
index 26711ea..16df6fe 100644 (file)
@@ -100,6 +100,7 @@ cdef DBusHandlerResult cmessage_function_handler (DBusConnection *connection,
     retval = function(*args)
     if (retval == None):
         retval = DBUS_HANDLER_RESULT_HANDLED
+
     return retval
 
 cdef class Connection:
@@ -644,6 +645,7 @@ cdef class MessageIter:
     
 (MESSAGE_TYPE_INVALID, MESSAGE_TYPE_METHOD_CALL, MESSAGE_TYPE_METHOD_RETURN, MESSAGE_TYPE_ERROR, MESSAGE_TYPE_SIGNAL) = range(5)
 (TYPE_INVALID, TYPE_NIL, TYPE_BYTE, TYPE_BOOLEAN, TYPE_INT32, TYPE_UINT32, TYPE_INT64, TYPE_UINT64, TYPE_DOUBLE, TYPE_STRING, TYPE_CUSTOM, TYPE_ARRAY, TYPE_DICT, TYPE_OBJECT_PATH) = (0, ord('v'), ord('y'), ord('b'), ord('i'), ord('u'), ord('x'), ord('t'), ord('d'), ord('s'), ord('c'), ord('a'), ord('m'), ord('o'))
+(HANDLER_RESULT_HANDLED, HANDLER_RESULT_NOT_YET_HANDLED, HANDLER_RESULT_NEED_MEMORY) = range(3)
     
 cdef class Message:
     cdef DBusMessage *msg