SD_BUS_SET_CLOSE_ON_EXIT(3)

πŸ’– NAME πŸ’–

okay so this is SD_BUS_SET_CLOSE_ON_EXIT(3) β€” the manual page for sd_bus_set_close_on_exit, sd_bus_get_close_on_exit β€” and it's literally all about controlling whether to close the bus connection during the event loop exit phase ✨

✨ SYNOPSIS ✨

#include <systemd/sd-bus.h>

int sd_bus_set_close_on_exit(sd_bus *bus, int b);

int sd_bus_get_close_on_exit(sd_bus *bus);

πŸ’… DESCRIPTION πŸ’…

sd_bus_set_close_on_exit() is your little switch for enabling or disabling whether the bus connection gets automatically flushed (as in sd_bus_flush(3)) and closed (as in sd_bus_close(3)) during the exit phase of the event loop. periodt πŸ’…

This logic only applies to bus connections that are attached to an sd-event(3) event loop β€” see sd_bus_attach_event(3). By default, this mechanism is enabled, and it makes sure that any pending messages that have not been written to the bus connection are written out when the event loop is shutting down. 🌸

Sometimes that behaviour is not desirable β€” for example, when the bus connection shall remain usable until after the event loop exited. If b is true, the feature is enabled (which is the default); otherwise it's disabled. iykyk πŸ‘‘

sd_bus_get_close_on_exit() may be used to query the current setting of this feature. It returns zero when the feature is disabled, and positive if enabled. slay πŸŽ€

πŸŽ€ RETURN VALUE πŸŽ€

On success, sd_bus_set_close_on_exit() returns a non-negative integer. On failure, it returns a negative errno-style error code. 😭

sd_bus_get_close_on_exit() returns 0 if the feature is currently disabled, or a positive integer if it is enabled. On failure, it returns a negative errno-style error code.

😭 Errors 😭

Returned errors may indicate the following problems:

  • -ECHILD β€” the bus connection was created in a different process, library or module instance. πŸ™ˆ

πŸ¦‹ NOTES πŸ¦‹

The 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. no cap, that part matters ⚠️

⭐ HISTORY ⭐

sd_bus_set_close_on_exit() and sd_bus_get_close_on_exit() were added in version 240. πŸŽ‰

🌈 SEE ALSO 🌈

Go check these next, bestie:

okay that's the whole page β€” source/version systemd 261.3, manual SD_BUS_SET_CLOSE_ON_EXIT(3) πŸ«ΆπŸ’–βœ¨

πŸ“¦ where this page comes from