summaryrefslogtreecommitdiff
path: root/man
diff options
context:
space:
mode:
authorUmut Tezduyar Lindskog <umuttl@axis.com>2015-07-10 14:31:53 +0200
committerUmut Tezduyar Lindskog <umuttl@axis.com>2015-07-10 14:32:02 +0200
commitdb03761e16f945fdc639f88a0c316eeda665980b (patch)
treedb991519c7d7fc01819d95b69e31d81216f14631 /man
parent43694a8cc70667498f3ffc5d9325b7d0428558e5 (diff)
downloadsystemd-db03761e16f945fdc639f88a0c316eeda665980b.tar.gz
man: sd_unref does not necessarily free the bus
Document that sd_unref() does not necessarily free the bus, even if no part of the program explicitly refs it, due to the queued messages.
Diffstat (limited to 'man')
-rw-r--r--man/sd_bus_default.xml6
-rw-r--r--man/sd_bus_new.xml16
2 files changed, 13 insertions, 9 deletions
diff --git a/man/sd_bus_default.xml b/man/sd_bus_default.xml
index 95b347bdfd..782dfb5706 100644
--- a/man/sd_bus_default.xml
+++ b/man/sd_bus_default.xml
@@ -219,6 +219,12 @@
one. Use
<citerefentry><refentrytitle>sd_bus_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry>
to drop the reference.</para>
+
+ <para>Queued messages also keep a reference to the bus. For this reason, just
+ because no application is having a reference to the bus does not mean that
+ the bus object will be destroyed. Until all the messages are sent, the bus object
+ will stay alive. <function>sd_bus_flush</function> can be used to send all the
+ queued messages so they drop their references.</para>
</refsect1>
<refsect1>
diff --git a/man/sd_bus_new.xml b/man/sd_bus_new.xml
index 44744a0029..aff2ed2e83 100644
--- a/man/sd_bus_new.xml
+++ b/man/sd_bus_new.xml
@@ -77,8 +77,8 @@
<para><function>sd_bus_new()</function> creates a new bus
object. This object is reference-counted, and will be destroyed
when all references are gone. Initially, the caller of this
- function owns the sole reference. The bus object will not be
- connected to any bus initially. To connect it to a bus, make sure
+ function owns the sole reference and the bus object will not be
+ connected to any bus. To connect it to a bus, make sure
to set an address with
<citerefentry><refentrytitle>sd_bus_set_address</refentrytitle><manvolnum>3</manvolnum></citerefentry>
or a related call, and then start the connection with
@@ -94,15 +94,13 @@
well-known bus in a single function invocation.</para>
<para><function>sd_bus_ref()</function> creates a new reference to
- <parameter>bus</parameter>. This bus object will not be destroyed
- until <function>sd_bus_unref()</function> has been called as many
- times plus once more. Once the reference count has dropped to
- zero, <parameter>bus</parameter> cannot be used anymore, so
- further calls to <function>sd_bus_ref()</function> or
- <function>sd_bus_unref()</function> are illegal.</para>
+ <parameter>bus</parameter>.</para>
<para><function>sd_bus_unref()</function> destroys a reference to
- <parameter>bus</parameter>.</para>
+ <parameter>bus</parameter>. Once the reference count has dropped
+ to zero, <parameter>bus</parameter> cannot be used anymore, so
+ further calls to <function>sd_bus_ref()</function> or
+ <function>sd_bus_unref()</function> are illegal.</para>
</refsect1>
<refsect1>