dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering<?xml version='1.0'?> <!--*- Mode: nxml; nxml-child-indent: 2; indent-tabs-mode: nil -*-->
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering<!--
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering This file is part of systemd.
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering Copyright 2015 Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering systemd is free software; you can redistribute it and/or modify it
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering under the terms of the GNU Lesser General Public License as published by
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering the Free Software Foundation; either version 2.1 of the License, or
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering (at your option) any later version.
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering systemd is distributed in the hope that it will be useful, but
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering WITHOUT ANY WARRANTY; without even the implied warranty of
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering Lesser General Public License for more details.
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering You should have received a copy of the GNU Lesser General Public License
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering along with systemd; If not, see <http://www.gnu.org/licenses/>.
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering-->
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering<refentry id="sd_event_source_unref" xmlns:xi="http://www.w3.org/2001/XInclude">
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <refentryinfo>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <title>sd_event_source_unref</title>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <productname>systemd</productname>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <authorgroup>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <author>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <contrib>Developer</contrib>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <firstname>Lennart</firstname>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <surname>Poettering</surname>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <email>lennart@poettering.net</email>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering </author>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering </authorgroup>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering </refentryinfo>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <refmeta>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <refentrytitle>sd_event_source_unref</refentrytitle>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <manvolnum>3</manvolnum>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering </refmeta>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <refnamediv>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <refname>sd_event_source_unref</refname>
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering <refname>sd_event_source_unrefp</refname>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <refname>sd_event_source_ref</refname>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <refpurpose>Increase or decrease event source reference counters</refpurpose>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering </refnamediv>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <refsynopsisdiv>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <funcsynopsis>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <funcsynopsisinfo>#include &lt;systemd/sd-event.h&gt;</funcsynopsisinfo>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <funcprototype>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <funcdef>sd_event_source* <function>sd_event_source_unref</function></funcdef>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <paramdef>sd_event_source *<parameter>source</parameter></paramdef>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering </funcprototype>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering <funcprototype>
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering <funcdef>void <function>sd_event_source_unrefp</function></funcdef>
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering <paramdef>sd_event_source **<parameter>source</parameter></paramdef>
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering </funcprototype>
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <funcprototype>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <funcdef>sd_event_source* <function>sd_event_source_ref</function></funcdef>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <paramdef>sd_event_source *<parameter>source</parameter></paramdef>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering </funcprototype>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering </funcsynopsis>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering </refsynopsisdiv>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <refsect1>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <title>Description</title>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <para><function>sd_event_source_unref()</function> may be used to
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering decrement by one the reference counter of the event source object
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering specified as <parameter>source</parameter>. The reference counter
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering is initially set to one, when the event source is created with calls
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering such as
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <citerefentry><refentrytitle>sd_event_add_io</refentrytitle><manvolnum>3</manvolnum></citerefentry>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering or
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <citerefentry><refentrytitle>sd_event_add_time</refentrytitle><manvolnum>3</manvolnum></citerefentry>. When
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering the reference counter reaches zero it is removed from its event loop
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering object and destroyed.</para>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering <para><function>sd_event_source_unrefp()</function> is similar to
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering <function>sd_event_source_unref()</function> but takes a pointer to a
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering pointer to an <type>sd_event_source</type> object. This call is useful in
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering conjunction with GCC's and LLVM's <ulink
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering url="https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html">Clean-up
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering Variable Attribute</ulink>. Note that this function is defined as
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering inline function.</para>
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <para><function>sd_event_source_ref()</function> may be used
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering to increase by one the reference counter of the event source object
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering specified as <parameter>source</parameter>.</para>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering <para><function>sd_event_source_unref()</function>,
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering <function>sd_bus_creds_unrefp()</function> and
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering <function>sd_bus_creds_ref()</function> execute no operation if
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering the passed event source object is
4afd3348c7506dd1d36305b7bcb9feb8952b9d6bLennart Poettering <constant>NULL</constant>.</para>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <para>Note that event source objects stay alive and may be
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering dispatched as long as they have a reference counter greater than
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering zero. In order to drop a reference of an event source and make
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering sure the associated event source handler function is not called
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering anymore it is recommended to combine a call of
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <function>sd_event_source_unref()</function> with a prior call to
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <function>sd_event_source_set_enabled()</function> with
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <constant>SD_EVENT_OFF</constant>.</para>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering </refsect1>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <refsect1>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <title>Return Value</title>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <para><function>sd_event_source_unref()</function> always returns
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <constant>NULL</constant>.
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <function>sd_event_source_ref()</function> always returns the
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering event source object passed in.</para>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering </refsect1>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <xi:include href="libsystemd-pkgconfig.xml" />
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <refsect1>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <title>See Also</title>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <para>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <citerefentry><refentrytitle>sd-event</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <citerefentry><refentrytitle>sd_event_add_io</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <citerefentry><refentrytitle>sd_event_add_time</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <citerefentry><refentrytitle>sd_event_add_child</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <citerefentry><refentrytitle>sd_event_add_signal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <citerefentry><refentrytitle>sd_event_add_defer</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering <citerefentry><refentrytitle>sd_event_source_set_enabled</refentrytitle><manvolnum>3</manvolnum></citerefentry>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering </para>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering </refsect1>
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering
dc83f27a7cf03757dec11a69ec18504ad4ea8f89Lennart Poettering</refentry>