diff options
Diffstat (limited to 'dbus/dbus-connection.c')
| -rw-r--r-- | dbus/dbus-connection.c | 22 | 
1 files changed, 18 insertions, 4 deletions
| diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c index 7f9423af..d6ee104a 100644 --- a/dbus/dbus-connection.c +++ b/dbus/dbus-connection.c @@ -1166,7 +1166,7 @@ dbus_connection_send (DBusConnection *connection,      }  } -static void +static dbus_bool_t  reply_handler_timeout (void *data)  {    DBusConnection *connection; @@ -1187,6 +1187,8 @@ reply_handler_timeout (void *data)    reply_handler_data->timeout_added = FALSE;    dbus_mutex_unlock (connection->mutex); + +  return TRUE;  }  static void @@ -2171,21 +2173,33 @@ dbus_connection_set_wakeup_main_function (DBusConnection            *connection,   * is ready for reading or writing, or has an exception such   * as a hangup.   * + * If this function returns #FALSE, then the file descriptor may still + * be ready for reading or writing, but more memory is needed in order + * to do the reading or writing. If you ignore the #FALSE return, your + * application may spin in a busy loop on the file descriptor until + * memory becomes available, but nothing more catastrophic should + * happen. + *   * @param connection the connection.   * @param watch the watch.   * @param condition the current condition of the file descriptors being watched. + * @returns #FALSE if the IO condition may not have been fully handled due to lack of memory   */ -void +dbus_bool_t  dbus_connection_handle_watch (DBusConnection              *connection,                                DBusWatch                   *watch,                                unsigned int                 condition)  { +  dbus_bool_t retval; +      dbus_mutex_lock (connection->mutex);    _dbus_connection_acquire_io_path (connection, -1); -  _dbus_transport_handle_watch (connection->transport, -				watch, condition); +  retval = _dbus_transport_handle_watch (connection->transport, +                                         watch, condition);    _dbus_connection_release_io_path (connection);    dbus_mutex_unlock (connection->mutex); + +  return retval;  }  /** | 
