Find a file
John (J5) Palmieri 14cc7d28a8 * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
static DBusList *uninitialized_condvar_list to support new late
        initialization threading model.  In this model threads can be initialized
        even after the D-Bus API has been used but still needs to be initialized
        before the second thread has been started.  Mutexes and condvar addresses
        are stored in the two static lists and are replaced with actuall locks
        when threads are initalized.
        (_dbus_mutex_new_at_location): New method for creating a mutex and placing
        the location into the static list
        (_dbus_mutex_free_at_location): New method for removing a mutex location
        from the static list and freeing the mutex
        (_dbus_condvar_new_at_location): New method for creating a conditional
        variable and placing the location into the static list
        (_dbus_condvar_free_at_location): New method for removing a conditional
        variable location from the static list and freeing the conditional variable
        (init_uninitialized_locks): Atomic method which goes through the static
        lists of mutex and condvar location and updates them with actuall locks
        (init_global_locks): changed to init_locks

        * dbus/dbus-connection.c:
        (_dbus_connection_test_get_locks): New method for tests to check connections
        (_dbus_connection_new_for_transport): Use the new at_location mutex and
        condvar API
        (dbus_connection_allocate_data_slot): Pass in the global lock address
        to _dbus_data_slot_allocator_alloc

        * dbus/dbus-dataslot.c:
        (_dbus_data_slot_allocator_alloc): Use the address of the mutex
        instead of the mutex itself

        * dbus/dbus-message.c:
        (dbus_message_allocate_data_slot): Pass in the global lock address
        to _dbus_data_slot_allocator_alloc

        * dbus/dbus-pending-call.c:
        (dbus_pending_call_allocate_data_slot): Pass in the global lock address
        to _dbus_data_slot_allocator_alloc

        * dbus/dbus-server.c:
        (_dbus_server_init_base): Use the new at_location mutex API
        (dbus_server_allocate_data_slot): Pass in the global lock address
        to _dbus_data_slot_allocator_alloc

        * test/name-test/test-threads-init.c: New test case for late thread
        initialization
2006-08-16 22:30:15 +00:00
bus Patches by Kjartan Maraas <kmaraas at gnome dot org> 2006-08-14 19:11:35 +00:00
dbus * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and 2006-08-16 22:30:15 +00:00
doc * s/D-BUS/D-Bus/g 2006-08-03 20:34:36 +00:00
glib * Remove all bindings 2006-07-14 16:20:12 +00:00
test * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and 2006-08-16 22:30:15 +00:00
tools * tools/run-with-tmp-session-bus.sh: 2006-08-10 21:44:00 +00:00
.cvsignore 2003-02-16 Havoc Pennington <hp@pobox.com> 2003-02-16 07:20:54 +00:00
acinclude.m4 2006-02-16 Robert McQueen <robot101@debian.org> 2006-02-16 01:13:04 +00:00
AUTHORS * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 2005-11-07 21:57:13 +00:00
autogen.sh 2005-01-30 Havoc Pennington <hp@redhat.com> 2005-01-31 02:55:12 +00:00
ChangeLog * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and 2006-08-16 22:30:15 +00:00
configure.in - configure.in doesn't seem to like >= 2.6.0 in a warning message 2006-08-10 21:33:06 +00:00
COPYING * s/D-BUS/D-Bus/g 2006-08-03 20:34:36 +00:00
dbus-1.pc.in Patch from Milosz Derezynski <internalerror at gmail.com> 2006-03-17 03:20:14 +00:00
Doxyfile.in * Doxyfile.in: fix the INPUT line so we can generate docs 2006-08-08 22:17:18 +00:00
HACKING * s/D-BUS/D-Bus/g 2006-08-03 20:34:36 +00:00
INSTALL 2006-04-24 John (J5) Palmieri <johnp@redhat.com> 2006-04-24 15:28:42 +00:00
Makefile.am * Remove all bindings 2006-07-14 16:20:12 +00:00
Makefile.cvs Match kde schematics 2003-11-23 08:07:04 +00:00
NEWS - Released 0.91 2006-07-24 17:48:13 +00:00
README * Removed some extra bindings stuff lingering around (thanks timo) 2006-07-21 19:28:56 +00:00
update-dbus-docs.sh fix file list in update-dbus-docs.sh 2005-12-01 05:42:03 +00:00

D-BUS is a simple IPC library based on messages.

See also the file HACKING for notes of interest to developers working on D-BUS.

See http://www.freedesktop.org/software/dbus/ for lots of documentation, 
mailing lists, etc.

Note
===

A core concept of the D-BUS implementation is that "libdbus" is
intended to be a low-level API, similar to Xlib. Most programmers are
intended to use the bindings to GLib, Qt, Python, Mono, Java, or
whatever. These bindings have varying levels of completeness.

Configuration flags
===

These are the dbus-specific configuration flags that can be given to
the ./configure program.

  --enable-tests          enable unit test code
  --enable-ansi           enable -ansi -pedantic gcc flags
  --enable-verbose-mode   support verbose debug mode
  --enable-asserts        include assertion checks
  --enable-checks         include sanity checks on public API
  --enable-xml-docs       build XML documentation (requires xmlto)
  --enable-doxygen-docs   build DOXYGEN documentation (requires Doxygen)
  --enable-gcov           compile with coverage profiling instrumentation (gcc only)
  --enable-abstract-sockets
                          use abstract socket namespace (linux only)
  --enable-selinux        build with SELinux support
  --enable-dnotify        build with dnotify support (linux only)

  --with-xml=libxml/expat           XML library to use
  --with-init-scripts=redhat        Style of init scripts to install
  --with-session-socket-dir=dirname Where to put sockets for the per-login-session message bus
  --with-test-socket-dir=dirname    Where to put sockets for make check
  --with-system-pid-file=pidfile    PID file for systemwide daemon
  --with-system-socket=filename     UNIX domain socket for systemwide daemon
  --with-console-auth-dir=dirname   directory to check for console ownerhip
  --with-dbus-user=<user>           User for running the DBUS daemon (messagebus)
  --with-gnu-ld                     assume the C compiler uses GNU ld [default=no]
  --with-tags[=TAGS]                include additional configurations [automatic]
  --with-x                          use the X Window System


API/ABI Policy
===

D-BUS API/ABI and protocol necessarily remain in flux until we are
sure it will meet the various needs it's intended to meet. This means
we need to see some significant sample usage in the contexts of GNOME,
KDE, desktop applications, and systemwide uses such as print queue
monitoring, hotplug events, or whatever. We need the flexibility to
incorporate feedback from this sample usage.

Once we feel confident in the protocol and the API, we will release a 
version 1.0. At that point, the intent is:

 - The protocol will never be broken again; any message bus should 
   work with any client forever. However, extensions are possible
   where the protocol is extensible.

 - If the library API is modified incompatibly, we will rename it 
   as in http://ometer.com/parallel.html - in other words, 
   it will always be possible to compile against and use the older 
   API, and apps will always get the API they expect.

Until 1.0 is released, feedback that requires API changes may be
incorporated into D-BUS. This may break the API, the ABI, the
protocol, or all three.

To avoid a huge soname, the plan is to increment the soname only
between official stable releases, not with every development snapshot.
Versions numbered 0.x are considered development snapshots.

Until 1.0 is released, you have to define -DDBUS_API_SUBJECT_TO_CHANGE
just as a safety check to be sure everyone is aware of this API/ABI
policy and has the right expectations.

We do need people to test the APIs, so please do use the development
snapshots of D-BUS. They are intended to work and we do actively
address bugs.

However, if you're shipping a commercial binary-only application that
needs to keep running on M future versions of N operating systems, you
might want to include your own copy of D-BUS rather than relying on
the installed copy, for example.