sd_bus_enqueue_for_read(3) — Linux manual page


SD_BUS_E..._FOR_READ(3)  sd_bus_enqueue_for_read SD_BUS_E..._FOR_READ(3)

NAME         top

       sd_bus_enqueue_for_read - Re-enqueue a bus message on a bus
       connection, for reading

SYNOPSIS         top

       #include <systemd/sd-bus.h>

       int sd_bus_enqueue_for_read(sd_bus *bus,
                                   sd_bus_message *message);

DESCRIPTION         top

       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

       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.

RETURN VALUE         top

       On success, this function return 0 or a positive integer. On
       failure, it returns a negative errno-style error code.

       Returned errors may indicate the following problems:

           The bus connection has been created in a different process,
           library or module instance.

           Added in version 245.

NOTES         top

       Functions described here are available as a shared library, which
       can be compiled against and linked to with the
       libsystemd pkg-config(1) file.

       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

HISTORY         top

       sd_bus_enqueue_for_read() was added in version 245.

SEE ALSO         top

       systemd(1), sd-bus(3), sd_bus_send(3),

COLOPHON         top

       This page is part of the systemd (systemd system and service
       manager) project.  Information about the project can be found at
       ⟨⟩.  If you have
       a bug report for this manual page, see
       This page was obtained from the project's upstream Git repository
       ⟨⟩ on 2023-12-22.  (At that
       time, the date of the most recent commit that was found in the
       repository was 2023-12-22.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there
       is a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to

systemd 255                                      SD_BUS_E..._FOR_READ(3)

Pages that refer to this page: systemd.directives(7)systemd.index(7)