summaryrefslogtreecommitdiff
path: root/man/sd_bus_default.xml
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-05-30 16:33:12 +0200
committerLennart Poettering <lennart@poettering.net>2018-05-30 17:34:34 +0200
commit1004b2c7bc5adb8dba23e209c88f74a02ac5f709 (patch)
treed9110c324dfafc187265464309da9767b5d7859b /man/sd_bus_default.xml
parent303acb7f2db3240491abb3cd8bdba90ecfc9306d (diff)
downloadsystemd-1004b2c7bc5adb8dba23e209c88f74a02ac5f709.tar.gz
man: document the new sd_bus_slot_set_floating() call
Also extend the memory management description of sd-bus highlighting the effect of "floating" slot objects a bit.
Diffstat (limited to 'man/sd_bus_default.xml')
-rw-r--r--man/sd_bus_default.xml35
1 files changed, 20 insertions, 15 deletions
diff --git a/man/sd_bus_default.xml b/man/sd_bus_default.xml
index f36272e854..da06fb9cbf 100644
--- a/man/sd_bus_default.xml
+++ b/man/sd_bus_default.xml
@@ -206,21 +206,26 @@
<citerefentry><refentrytitle>sd_bus_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry>
to drop the reference.</para>
- <para>Queued but unwritten/unread messages also keep a reference
- to their bus connection object. For this reason, even if an
- application dropped all references to a bus connection, it might
- not get destroyed right away. Until all incoming queued
- messages are read, and until all outgoing unwritten messages are
- written, the bus object will stay
- alive. <function>sd_bus_flush()</function> may be used to write
- all outgoing queued messages so they drop their references. To
- flush the unread incoming messages, use
- <function>sd_bus_close()</function>, which will also close the bus
- connection. When using the default bus logic, it is a good idea to
- first invoke <function>sd_bus_flush()</function> followed by
- <function>sd_bus_close()</function> when a thread or process
- terminates, and thus its bus connection object should be
- freed.</para>
+ <para>Queued but unwritten/unread messages keep a reference to their bus connection object. For this reason, even
+ if an application dropped all references to a bus connection, it might not get destroyed right away. Until all
+ incoming queued messages are read, and until all outgoing unwritten messages are written, the bus object will stay
+ alive. <function>sd_bus_flush()</function> may be used to write all outgoing queued messages so they drop their
+ references. To flush the unread incoming messages, use <function>sd_bus_close()</function>, which will also close
+ the bus connection. When using the default bus logic, it is a good idea to first invoke
+ <function>sd_bus_flush()</function> followed by <function>sd_bus_close()</function> when a thread or process
+ terminates, and thus its bus connection object should be freed.</para>
+
+ <para>Normally, slot objects (as created by
+ <citerefentry><refentrytitle>sd_bus_add_match</refentrytitle><manvolnum>3</manvolnum></citerefentry> and similar
+ calls) keep a reference to their bus connection object, too. Thus, as long as a bus slot object remains referenced
+ its bus object will remain allocated too. Optionally, bus slot objects may be placed in "floating" mode. When in
+ floating mode the life cycle of the bus slot object is bound to the bus object, i.e. when the bus object is freed
+ the bus slot object is automatically unreferenced too. The floating state of a slot object may be controlled
+ explicitly with
+ <citerefentry><refentrytitle>sd_bus_slot_set_floating</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ though usually floating bus slot objects are created by passing <constant>NULL</constant> as the
+ <parameter>slot</parameter> parameter of <function>sd_bus_add_match()</function> and related calls, thus indicating
+ that the caller is not directly interested in referencing and managing the bus slot object.</para>
<para>The life cycle of the default bus connection should be the
responsibility of the code that creates/owns the thread the