diff options
author | Lennart Poettering <lennart@poettering.net> | 2014-04-01 19:12:59 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2014-04-13 17:41:01 -0700 |
commit | faae655de3cdbed4be1d472b01ce0c4d81e905ed (patch) | |
tree | ce17ad66a5ceb4c7ef3c65ea4d9267d4f6ae3ae7 /man/sd_event_new.xml | |
parent | 9ea28c55a2488e6cd4a44ac5786f12b71ad5bc9f (diff) |
man: add man page for sd_event_new()
Diffstat (limited to 'man/sd_event_new.xml')
-rw-r--r-- | man/sd_event_new.xml | 181 |
1 files changed, 181 insertions, 0 deletions
diff --git a/man/sd_event_new.xml b/man/sd_event_new.xml new file mode 100644 index 0000000000..1fe18202b6 --- /dev/null +++ b/man/sd_event_new.xml @@ -0,0 +1,181 @@ +<?xml version='1.0'?> <!--*-nxml-*--> +<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" +"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> + +<!-- +This file is part of systemd. + +Copyright 2014 Lennart Poettering + +systemd is free software; you can redistribute it and/or modify it +under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +systemd is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with systemd; If not, see <http://www.gnu.org/licenses/>. +--> + +<refentry id="sd_event_new" conditional="ENABLE_KDBUS"> + + <refentryinfo> + <title>sd_event_new</title> + <productname>systemd</productname> + + <authorgroup> + <author> + <contrib>Developer</contrib> + <firstname>Lennart</firstname> + <surname>Poettering</surname> + <email>lennart@poettering.net</email> + </author> + </authorgroup> + </refentryinfo> + + <refmeta> + <refentrytitle>sd_event_new</refentrytitle> + <manvolnum>3</manvolnum> + </refmeta> + + <refnamediv> + <refname>sd_event_new</refname> + <refname>sd_event_default</refname> + <refname>sd_event_ref</refname> + <refname>sd_event_unref</refname> + + <refpurpose>Acquire and release an event loop object</refpurpose> + </refnamediv> + + <refsynopsisdiv> + <funcsynopsis> + <funcsynopsisinfo>#include <systemd/sd-bus.h></funcsynopsisinfo> + + <funcprototype> + <funcdef>int <function>sd_event_new</function></funcdef> + <paramdef>sd_bus **<parameter>event</parameter></paramdef> + </funcprototype> + + <funcprototype> + <funcdef>int <function>sd_event_default</function></funcdef> + <paramdef>sd_bus **<parameter>event</parameter></paramdef> + </funcprototype> + + <funcprototype> + <funcdef>sd_bus *<function>sd_event_ref</function></funcdef> + <paramdef>sd_bus *<parameter>event</parameter></paramdef> + </funcprototype> + + <funcprototype> + <funcdef>sd_bus *<function>sd_event_unref</function></funcdef> + <paramdef>sd_bus *<parameter>event</parameter></paramdef> + </funcprototype> + + </funcsynopsis> + </refsynopsisdiv> + + <refsect1> + <title>Description</title> + + <para><function>sd_event_new()</function> allocates a new event + loop object. The event loop object is returned in the + <parameter>event</parameter> parameter. After use drop + the returned reference with + <function>sd_event_unref()</function>. When the last reference is + dropped the event loop is freed.</para> + + <para><function>sd_event_default()</function> acquires a reference + to the default event loop object of the calling thread, possibly + allocating a new object if no default event loop object has been + allocated yet for the thread. After use drop the returned + referened with <function>sd_event_unref()</function>. When the + last reference is dropped the event loop is freed. If this + function is called while the object returned from a previous call + from the same thread is still referenced, the same object is + returned again, but the reference is increased by one. It is + recommended to use this call instead of + <function>sd_event_new()</function> in order to share event loop + objects between various components that are dispatched in the same + thread. All threads either have no or one default event loops + associated, but never more.</para> + + <para><function>sd_event_ref()</function> increases the reference + counter of the specified event loop object by one.</para> + + <para><function>sd_event_unref()</function> decreases the + reference counter of the specified event loop object by one. If + the counter hits zero the event loop object is freed. Not that it + is freed regardless if it is the default event loop object of a + thread or not. This means that allocating an event loop with + <function>sd_event_default()</function>, then releasing it and + then acquiring a new one with + <function>sd_event_default()</function> will result in two + distinct objects. Note that in order to free an event loop object + all remaining event sources of the event loop also need to be + freed as they each keep a reference to it.</para> + </refsect1> + + <refsect1> + <title>Return Value</title> + + <para>On success, <function>sd_event_new()</function> and + <function>sd_event_default()</function> return 0 or a positive + integer. On failure, they return a negative errno-style error + code. <function>sd_event_ref()</function> always returns a pointer + to the event loop object passed + in. <function>sd_event_unref()</function> always returns + NULL.</para> + </refsect1> + + <refsect1> + <title>Errors</title> + + <para>Returned errors may indicate the following problems:</para> + + <variablelist> + <varlistentry> + <term><varname>-ENOMEM</varname></term> + + <listitem><para>Not enough memory to allocate object</para></listitem> + </varlistentry> + + <varlistentry> + <term><varname>-EMFILE</varname></term> + + <listitem><para>The maximum number of event loops has been allocated.</para></listitem> + + </varlistentry> + </variablelist> + </refsect1> + + <refsect1> + <title>Notes</title> + + <para><function>sd_event_new()</function> and the other functions + described here are available as a shared library, which can be + compiled and linked to with the + <constant>libsystemd</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry> + file.</para> + </refsect1> + + <refsect1> + <title>See Also</title> + + <para> + <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, + <citerefentry><refentrytitle>sd-event</refentrytitle><manvolnum>3</manvolnum></citerefentry>, + <citerefentry><refentrytitle>sd_event_add_io</refentrytitle><manvolnum>3</manvolnum></citerefentry>, + <citerefentry><refentrytitle>sd_event_add_time</refentrytitle><manvolnum>3</manvolnum></citerefentry>, + <citerefentry><refentrytitle>sd_event_add_signal</refentrytitle><manvolnum>3</manvolnum></citerefentry>, + <citerefentry><refentrytitle>sd_event_add_child</refentrytitle><manvolnum>3</manvolnum></citerefentry>, + <citerefentry><refentrytitle>sd_event_add_defer</refentrytitle><manvolnum>3</manvolnum></citerefentry>, + <citerefentry><refentrytitle>sd_event_add_post</refentrytitle><manvolnum>3</manvolnum></citerefentry>, + <citerefentry><refentrytitle>sd_event_add_exit</refentrytitle><manvolnum>3</manvolnum></citerefentry> + </para> + </refsect1> + +</refentry> |