diff options
-rw-r--r-- | man/rules/meson.build | 1 | ||||
-rw-r--r-- | man/sd_event_source_unref.xml | 12 | ||||
-rw-r--r-- | src/systemd/sd-event.h | 1 |
3 files changed, 14 insertions, 0 deletions
diff --git a/man/rules/meson.build b/man/rules/meson.build index 944d2bf286..bc71e0645b 100644 --- a/man/rules/meson.build +++ b/man/rules/meson.build @@ -446,6 +446,7 @@ manpages = [ ['sd_event_source_unref', '3', ['sd_event_source_disable_unref', + 'sd_event_source_disable_unrefp', 'sd_event_source_ref', 'sd_event_source_unrefp'], ''], diff --git a/man/sd_event_source_unref.xml b/man/sd_event_source_unref.xml index 4e2fb8cb39..81131fa737 100644 --- a/man/sd_event_source_unref.xml +++ b/man/sd_event_source_unref.xml @@ -20,6 +20,7 @@ <refname>sd_event_source_unrefp</refname> <refname>sd_event_source_ref</refname> <refname>sd_event_source_disable_unref</refname> + <refname>sd_event_source_disable_unrefp</refname> <refpurpose>Increase or decrease event source reference counters</refpurpose> </refnamediv> @@ -47,6 +48,11 @@ <funcdef>sd_event_source* <function>sd_event_source_disable_unref</function></funcdef> <paramdef>sd_event_source *<parameter>source</parameter></paramdef> </funcprototype> + + <funcprototype> + <funcdef>void <function>sd_event_source_disable_unrefp</function></funcdef> + <paramdef>sd_event_source **<parameter>source</parameter></paramdef> + </funcprototype> </funcsynopsis> </refsynopsisdiv> @@ -94,6 +100,12 @@ <function>sd_event_source_unref()</function>. This ensures that the source is disabled before the local reference to it is lost. The <parameter>source</parameter> parameter is allowed to be <constant>NULL</constant>.</para> + + <para><function>sd_event_source_disable_unrefp()</function> is similar to + <function>sd_event_source_unrefp()</function>, but in addition disables the source first. This call is + useful in conjunction with GCC's and LLVM's + <ulink url="https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html">Clean-up Variable + Attribute</ulink>. Note that this function is defined as inline function.</para> </refsect1> <refsect1> diff --git a/src/systemd/sd-event.h b/src/systemd/sd-event.h index 226e1b8f26..b14c92697b 100644 --- a/src/systemd/sd-event.h +++ b/src/systemd/sd-event.h @@ -150,6 +150,7 @@ int sd_event_source_set_floating(sd_event_source *s, int b); /* Define helpers so that __attribute__((cleanup(sd_event_unrefp))) and similar may be used. */ _SD_DEFINE_POINTER_CLEANUP_FUNC(sd_event, sd_event_unref); _SD_DEFINE_POINTER_CLEANUP_FUNC(sd_event_source, sd_event_source_unref); +_SD_DEFINE_POINTER_CLEANUP_FUNC(sd_event_source, sd_event_source_disable_unref); _SD_END_DECLARATIONS; |