sd_bus_set_exit_on_disconnect, sd_bus_get_exit_on_disconnect — Control the exit behavior when the bus object disconnects
#include <systemd/sd-bus.h>
int sd_bus_set_exit_on_disconnect( | sd_bus *bus, |
int b); |
int sd_bus_get_exit_on_disconnect( | sd_bus *bus); |
sd_bus_set_exit_on_disconnect() may be used to configure the exit
behavior when the given bus object disconnects. If b is zero, no special
logic is executed when the bus object disconnects. If b is non-zero, the
behavior on disconnect depends on whether the bus object is attached to an event loop or not. If
the bus object is attached to an event loop (see
sd_bus_attach_event(3)),
the event loop is closed when the bus object disconnects (as if calling
sd_event_exit(3)).
Otherwise,
exit(3)
is called. The exit code passed to sd_event_exit() and
exit() is EXIT_FAILURE. If the bus object has already
disconnected when enabling the exit behavior, the exit behavior is executed immediately. By
default, the exit behavior is disabled.
sd_bus_get_exit_on_disconnect() returns whether the exit on
disconnect behavior is enabled for the given bus object.
On success, sd_bus_set_exit_on_disconnect() returns a non-negative
integer. On failure, it returns a negative errno-style error code.
sd_bus_get_exit_on_disconnect() returns a positive integer if the
exit on disconnect behavior is enabled. Otherwise, it returns zero.
Functions described here are available as a shared
library, which can be compiled against and linked to with the
libsystemd pkg-config(1)
file.
All functions listed here are thread-agnostic and only a single thread may operate on a given object at any given time. Different threads may access the same object at different times. Multiple independent objects may be used from different threads in parallel.
The code described here uses
getenv(3),
which is declared to be not multi-thread-safe. This means that the code calling the functions described
here must not call
setenv(3)
from a parallel thread. It is recommended to only do calls to setenv()
from an early phase of the program when no other threads have been started.
sd_bus_set_exit_on_disconnect() and
sd_bus_get_exit_on_disconnect() were added in version 246.