sd_event_source_unrefp() is similar to sd_event_source_unref() but takes a pointer to a pointer to an sd_event_source object. This call is useful in conjunction with GCC's and LLVM's m[blue]Clean-up Variable Attributem. Note that this function is defined as inline function.
sd_event_source_ref() may be used to increase by one the reference counter of the event source object specified as source.
sd_event_source_unref(), sd_bus_creds_unrefp() and sd_bus_creds_ref() execute no operation if the passed event source object is NULL.
Note that event source objects stay alive and may be dispatched as long as they have a reference counter greater than zero. In order to drop a reference of an event source and make sure the associated event source handler function is not called anymore it is recommended to combine a call of sd_event_source_unref() with a prior call to sd_event_source_set_enabled() with SD_EVENT_OFF or call sd_event_source_disable_unref(), see below.
sd_event_source_disable_unref() combines a call to sd_event_source_set_enabled() with SD_EVENT_OFF with sd_event_source_unref(). This ensures that the source is disabled before the local reference to it is lost. The source parameter is allowed to be NULL.
sd_event_source_disable_unrefp() is similar to sd_event_source_unrefp(), but in addition disables the source first. This call is useful in conjunction with GCC's and LLVM's m[blue]Clean-up Variable Attributem. Note that this function is defined as inline function.
These APIs are implemented as a shared library, which can be compiled and linked to with the libsystemd pkg-config(1) file.