| NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | NOTES | HISTORY | SEE ALSO | COLOPHON | |
|  | 
SD_BUS_WAIT(3)                 sd_bus_wait                 SD_BUS_WAIT(3)
       sd_bus_wait - Wait for I/O on a bus connection
       #include <systemd/sd-bus.h>
       int sd_bus_wait(sd_bus *bus, uint64_t timeout_usec);
       sd_bus_wait() synchronously waits for I/O on the specified bus
       connection object. This function is supposed to be called whenever
       sd_bus_process(3) returns zero, indicating that no work is pending
       on the connection. Internally, this call invokes ppoll(2), to wait
       for I/O on the bus connection. If the timeout_usec parameter is
       specified, the call will block at most for the specified amount of
       time in μs. Pass UINT64_MAX to permit it to sleep indefinitely.
       After each invocation of sd_bus_wait() the sd_bus_process() call
       should be invoked in order to process any now pending I/O work.
       Note that sd_bus_wait() is suitable only for simple programs as it
       does not permit waiting for other I/O events. For more complex
       programs either connect the bus connection object to an external
       event loop using sd_bus_get_fd(3) or to an sd-event(3) event loop
       using sd_bus_attach_event(3).
       If any I/O was seen, a positive value is returned, zero otherwise.
       If an error occurs, a negative errno-style error code is returned.
   Errors
       Returned errors may indicate the following problems:
       -EINVAL
           An invalid bus object was passed.
       -ECHILD
           The bus connection was allocated in a parent process and is
           being reused in a child process after fork().
       -ENOTCONN
           The bus connection has been terminated already.
       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
       started.
       sd_bus_wait() was added in version 240.
       systemd(1), sd-bus(3), sd_bus_process(3), sd_bus_get_fd(3),
       sd-event(3), sd_bus_attach_event(3)
       This page is part of the systemd (systemd system and service
       manager) project.  Information about the project can be found at
       ⟨http://www.freedesktop.org/wiki/Software/systemd⟩.  If you have a
       bug report for this manual page, see
       ⟨http://www.freedesktop.org/wiki/Software/systemd/#bugreports⟩.
       This page was obtained from the project's upstream Git repository
       ⟨https://github.com/systemd/systemd.git⟩ on 2025-08-11.  (At that
       time, the date of the most recent commit that was found in the
       repository was 2025-08-11.)  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
       man-pages@man7.org
systemd 258~rc2                                            SD_BUS_WAIT(3)
Pages that refer to this page: sd-bus(3), sd_bus_attach_event(3), sd_bus_get_fd(3), sd_bus_process(3), systemd.directives(7), systemd.index(7)