static GMainLoop *mainloop = NULL;
-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)
{
- _D("Received SIGUSR1 signal(%d), feedbackd'll be finished.", signo);
+ long signo = (long) data;
- if (mainloop) {
- if (g_main_loop_is_running(mainloop))
- g_main_loop_quit(mainloop);
- }
+ _D("Received SIGUSR1 signal(%ld), feedbackd'll be finished.", signo);
+
+ if (mainloop && g_main_loop_is_running(mainloop))
+ g_main_loop_quit(mainloop);
+
+ return G_SOURCE_REMOVE;
}
static void dbus_name_acquired(GDBusConnection *connection, const gchar *name, gpointer user_data)
gdbus_check_name_owner(NULL, VIBRATOR_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);
/* g_main_loop */
g_main_loop_run(mainloop);