}
}
-static void sig_quit(int signo)
+static gboolean handle_sigterm(gpointer data)
{
- _D("Received SIGTERM signal(%d).", signo);
+ long signo = (long) data;
+ _D("Received SIGTERM signal(%ld).", signo);
+
+ return G_SOURCE_REMOVE;
}
-static void sig_usr1(int signo)
+static gboolean handle_sigusr1(gpointer data)
{
- CRITICAL_LOG("Received SIGUSR1 signal(%d), deviced'll be finished.", signo);
+ long signo = (long) data;
+ CRITICAL_LOG("Received SIGUSR1 signal(%ld), deviced'll be finished.", signo);
if (mainloop && g_main_loop_is_running(mainloop))
g_main_loop_quit(mainloop);
+
+ return G_SOURCE_REMOVE;
}
void watchdog_notify(void)
gdbus_check_name_owner(NULL, DEVICED_BUS_NAME);
}
- signal(SIGTERM, sig_quit);
- signal(SIGUSR1, sig_usr1);
+ g_unix_signal_add(SIGTERM, handle_sigterm, (gpointer) SIGTERM);
+ g_unix_signal_add(SIGUSR1, handle_sigusr1, (gpointer) SIGUSR1);
timer = g_timeout_add_seconds_full(G_PRIORITY_HIGH, WATCHDOG_REFRESH_TIME, watchdog_cb, NULL, NULL);
if (timer) {