| SD_BUS_ENQUEUE_FOR_READ(3) | sd_bus_enqueue_for_read | SD_BUS_ENQUEUE_FOR_READ(3) |
.SH "NAME" sd_bus_enqueue_for_read - Re-enqueue a bus message on a
bus connection, for reading
.SH "SYNOPSIS"
#include <systemd/sd-bus.h>
.HP 672u int sd_bus_enqueue_for_read(sd_bus *bus,
sd_bus_message *message);
.SH "DESCRIPTION"
.PP sd_bus_enqueue_for_read() may be used to re-enqueue an incoming
bus message on the local read queue, so that it is processed and dispatched
locally again, similarly to how an incoming message from the peer is
processed. Takes a bus connection object and the message to enqueue. A
reference is taken of the message and the caller's reference thus remains in
possession of the caller. The message is enqueued at the end of the queue,
thus will be dispatched after all other already queued messages are
dispatched.
.PP This call is primarily useful for dealing with incoming method calls that
may be processed only after an additional asynchronous operation completes.
One example are PolicyKit authorization requests that are determined to be
necessary to authorize a newly incoming method call: when the PolicyKit
response is received the original method call may be re-enqueued to process
it again, this time with the authorization result known.
.SH "RETURN VALUE"
.PP On success, this function return 0 or a positive integer. On failure, it
returns a negative errno-style error code.
.SS "Errors"
.PP Returned errors may indicate the following problems:
.PP -ECHILD
The bus connection has been created in a different process, library or module
instance.
.RE
.SH "NOTES"
.PP Functions described here are available as a shared library, which can be
compiled against and linked to with the
libsystemd pkg-config(1) file.
.PP 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.
.PP 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.
.SH "HISTORY"
.PP sd_bus_enqueue_for_read() was added in version 245.
.SH "SEE ALSO"
| systemd 262.2 |