aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/localed/localed.c10
-rw-r--r--src/interfaces/logind/logind.c10
-rw-r--r--src/interfaces/timedated/timedated.c10
3 files changed, 24 insertions, 6 deletions
diff --git a/src/interfaces/localed/localed.c b/src/interfaces/localed/localed.c
index 10ae7b7..e2fd3f4 100644
--- a/src/interfaces/localed/localed.c
+++ b/src/interfaces/localed/localed.c
@@ -123,8 +123,14 @@ static void localed_on_name_lost(GDBusConnection *conn,
* this stops our GMainLoop safely before letting main() return */
void localed_mem_clean() {
- g_ptr_array_foreach(localed_freeable, (GFunc) g_free, NULL);
- g_ptr_array_free(localed_freeable, TRUE);
+ g_printf("exiting...\n");
+
+ if(dbus_interface_exported)
+ g_dbus_interface_skeleton_unexport(G_DBUS_INTERFACE_SKELETON(localed_interf));
+
+ if(g_main_loop_is_running(localed_loop))
+ g_main_loop_quit(localed_loop);
+
}
int main() {
diff --git a/src/interfaces/logind/logind.c b/src/interfaces/logind/logind.c
index b08db9f..78775cf 100644
--- a/src/interfaces/logind/logind.c
+++ b/src/interfaces/logind/logind.c
@@ -123,8 +123,14 @@ static void logind_on_name_lost(GDBusConnection *conn,
* this stops our GMainLoop sfaely before letting main() return */
void logind_mem_clean() {
- g_ptr_array_foreach(logind_freeable, (GFunc) g_free, NULL);
- g_ptr_array_free(logind_freeable, TRUE);
+ g_printf("exiting...\n");
+
+ if(dbus_interface_exported)
+ g_dbus_interface_skeleton_unexport(G_DBUS_INTERFACE_SKELETON(logind_interf));
+
+ if(g_main_loop_is_running(logind_loop))
+ g_main_loop_quit(logind_loop);
+
}
int main() {
diff --git a/src/interfaces/timedated/timedated.c b/src/interfaces/timedated/timedated.c
index 3df5fc6..72d14f8 100644
--- a/src/interfaces/timedated/timedated.c
+++ b/src/interfaces/timedated/timedated.c
@@ -123,8 +123,14 @@ static void timedated_on_name_lost(GDBusConnection *conn,
* this stops our GMainLoop safely before letting main() return */
void timedated_mem_clean() {
- g_ptr_array_foreach(timedated_freeable, (GFunc) g_free, NULL);
- g_ptr_array_free(timedated_freeable, TRUE);
+ g_printf("exiting...\n");
+
+ if(dbus_interface_exported)
+ g_dbus_interface_skeleton_unexport(G_DBUS_INTERFACE_SKELETON(timedated_interf));
+
+ if(g_main_loop_is_running(timedated_loop))
+ g_main_loop_quit(timedated_loop);
+
}
int main() {