man: document sd_bus_flush_close_unref()
authorLennart Poettering <lennart@poettering.net>
Sat, 6 Oct 2018 17:15:57 +0000 (19:15 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 9 Nov 2018 16:09:52 +0000 (17:09 +0100)
man/rules/meson.build
man/sd_bus_new.xml

index 75e3660..0591975 100644 (file)
@@ -272,7 +272,14 @@ manpages = [
   '3',
   ['sd_bus_negotiate_creds', 'sd_bus_negotiate_timestamp'],
   ''],
- ['sd_bus_new', '3', ['sd_bus_ref', 'sd_bus_unref', 'sd_bus_unrefp'], ''],
+ ['sd_bus_new',
+  '3',
+  ['sd_bus_flush_close_unref',
+   'sd_bus_flush_close_unrefp',
+   'sd_bus_ref',
+   'sd_bus_unref',
+   'sd_bus_unrefp'],
+  ''],
  ['sd_bus_path_encode',
   '3',
   ['sd_bus_path_decode', 'sd_bus_path_decode_many', 'sd_bus_path_encode_many'],
index 5911767..1bc011d 100644 (file)
@@ -23,6 +23,8 @@
     <refname>sd_bus_ref</refname>
     <refname>sd_bus_unref</refname>
     <refname>sd_bus_unrefp</refname>
+    <refname>sd_bus_flush_close_unref</refname>
+    <refname>sd_bus_flush_close_unrefp</refname>
 
     <refpurpose>Create a new bus object and create or destroy references to it</refpurpose>
   </refnamediv>
         <funcdef>void <function>sd_bus_unrefp</function></funcdef>
         <paramdef>sd_bus **<parameter>busp</parameter></paramdef>
       </funcprototype>
+
+      <funcprototype>
+        <funcdef>sd_bus *<function>sd_bus_flush_close_unref</function></funcdef>
+        <paramdef>sd_bus *<parameter>bus</parameter></paramdef>
+      </funcprototype>
+
+      <funcprototype>
+        <funcdef>void <function>sd_bus_flush_close_unrefp</function></funcdef>
+        <paramdef>sd_bus **<parameter>busp</parameter></paramdef>
+      </funcprototype>
     </funcsynopsis>
   </refsynopsisdiv>
 
     dereference its argument, which must not be <constant>NULL</constant>, and will
     execute no operation if <emphasis>that</emphasis> is <constant>NULL</constant>.
     </para>
+
+    <para><function>sd_bus_flush_close_unref()</function> is similar to <function>sd_bus_unref()</function>, but first
+    executes <citerefentry><refentrytitle>sd_bus_flush</refentrytitle><manvolnum>3</manvolnum></citerefentry> as well
+    as <citerefentry><refentrytitle>sd_bus_close</refentrytitle><manvolnum>3</manvolnum></citerefentry>, ensuring that
+    any pending messages are properly flushed out before the reference to the connection is dropped and possibly the
+    object freed. This call is particularly useful immediately before exiting from a program as it ensures that any
+    pending outgoing messages are written out, and unprocessed but queued incoming messages released before the
+    connection is terminated and released.</para>
+
+    <para><function>sd_bus_flush_close_unrefp()</function> is similar to
+    <function>sd_bus_flush_close_unref()</function>, but may be used in GCC's and LLVM's Clean-up Variable Attribute,
+    see above.</para>
   </refsect1>
 
   <refsect1>
     <para><function>sd_bus_ref()</function> always returns the argument.
     </para>
 
-    <para><function>sd_bus_unref()</function> always returns
+    <para><function>sd_bus_unref()</function> and <function>sd_bus_flush_close_unref()</function> always return
     <constant>NULL</constant>.</para>
   </refsect1>
 
       <citerefentry><refentrytitle>sd_bus_default_user</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
       <citerefentry><refentrytitle>sd_bus_default_system</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
       <citerefentry><refentrytitle>sd_bus_open_user</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
-      <citerefentry><refentrytitle>sd_bus_open_system</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+      <citerefentry><refentrytitle>sd_bus_open_system</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+      <citerefentry><refentrytitle>sd_bus_close</refentrytitle><manvolnum>3</manvolnum></citerefentry>
     </para>
   </refsect1>