From 6be547d32f018c23ba56426a0bccd08baa2cf440 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Fri, 11 Apr 2003 00:03:06 +0000 Subject: 2003-04-10 Havoc Pennington * dbus/dbus-connection.c (dbus_connection_flush): don't spin on the connection if it's disconnected * bus/activation.c (bus_activation_service_created): use new transaction features to roll back removal of pending activation if we don't successfully create the service after all. Don't remove pending activation if the function fails. * dbus/dbus-list.c (_dbus_list_insert_before_link) (_dbus_list_insert_after_link): new code to facilitate services.c fixes * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated): new functionality, so we can preallocate the ability to insert into a hash table. * bus/connection.c (bus_transaction_add_cancel_hook): new function allowing us to put custom hooks in a transaction to be used for cancelling said transaction * doc/dbus-specification.sgml: add some discussion of secondary service owners, and disallow zero-length service names * bus/services.c (bus_registry_acquire_service): new function, splits out part of bus_driver_handle_acquire_service() and fixes a bug where we didn't remove the service doing the acquiring from the secondary queue if we failed to remove the current owner from the front of the queue. --- doc/dbus-specification.sgml | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) (limited to 'doc') diff --git a/doc/dbus-specification.sgml b/doc/dbus-specification.sgml index 109e964f..a464a0d6 100644 --- a/doc/dbus-specification.sgml +++ b/doc/dbus-specification.sgml @@ -1084,12 +1084,18 @@ The message bus keeps track of a set of - services. A service is simply a name, such - as com.yoyodyne.Screensaver, which can be - owned by one of the connected applications. - The message bus itself always owns the special service + services. A service is simply a name, such as + com.yoyodyne.Screensaver, which can be + owned by one or more of the connected + applications. The message bus itself always owns the special service org.freedesktop.DBus. + + Services may have secondary owners. Secondary owners + of a service are kept in a queue; if the primary owner of a service + disconnects, or releases the service, the next secondary owner becomes + the new owner of the service. + Messages may have a srvc field (see ). When the message bus @@ -1911,17 +1917,27 @@ + Secondary service owner + + + Each service has a primary owner; messages sent to the service name + go to the primary owner. However, certain services also maintain + a queue of secondary owners "waiting in the wings." If + the primary owner releases the service, then the first secondary + owner in the queue automatically becomes the primary owner. + + + Service - A service is simply a named application that other - applications can refer to. For example, the - hypothetical com.yoyodyne.Screensaver - service might accept messages that affect - a screensaver from Yoyodyne Corporation. - An application is said to own - a service if the message bus has associated the - application with the service name. + A service is simply a named list of applications. For example, the + hypothetical com.yoyodyne.Screensaver service might + accept messages that affect a screensaver from Yoyodyne Corporation. + An application is said to own a service if the + message bus has associated the application with the service name. + Services may also have secondary owners (see + ). -- cgit