-/*
-struct sd_event *afb_common_get_thread_event_loop()
-{
- sd_event *result;
- int rc = sd_event_default(&result);
- if (rc != 0) {
- errno = -rc;
- result = NULL;
- }
- return result;
-}
-*/
-
-static void *sdopen(void **p, int (*f)(void **))
-{
- if (*p == NULL) {
- int rc = f(p);
- if (rc < 0) {
- errno = -rc;
- *p = NULL;
- }
- }
- return *p;
-}
-
-static struct sd_bus *sdbusopen(struct sd_bus **p, int (*f)(struct sd_bus **))
-{
- if (*p == NULL) {
- int rc = f(p);
- if (rc < 0) {
- errno = -rc;
- *p = NULL;
- } else {
- rc = sd_bus_attach_event(*p, afb_common_get_event_loop(), 0);
- if (rc < 0) {
- sd_bus_unref(*p);
- errno = -rc;
- *p = NULL;
- }
- }
- }
- return *p;
-}
-
-struct sd_event *afb_common_get_event_loop()
-{
- static struct sd_event *result = NULL;
- return sdopen((void*)&result, (void*)sd_event_new);
-}
-
-struct sd_bus *afb_common_get_user_bus()
-{
- static struct sd_bus *result = NULL;
- return sdbusopen((void*)&result, (void*)sd_bus_open_user);
-}
-
-struct sd_bus *afb_common_get_system_bus()
-{
- static struct sd_bus *result = NULL;
- return sdbusopen((void*)&result, (void*)sd_bus_open_system);
-}
-