From f545d9641a4c55ea3c8701b7c0a28714231c5fae Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Sun, 25 Mar 2012 17:44:58 +0200 Subject: [PATCH] main: use new shared signals Use the shared signal-implementation instead of the generic signals. Signed-off-by: David Herrmann --- src/main.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/main.c b/src/main.c index 5665036..7202f5c 100644 --- a/src/main.c +++ b/src/main.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include "conf.h" #include "eloop.h" @@ -40,9 +41,6 @@ struct kmscon_app { struct ev_eloop *eloop; struct ev_eloop *vt_eloop; - struct ev_signal *sig_term; - struct ev_signal *sig_int; - struct ev_signal *sig_child; struct kmscon_vt *vt; bool exit; struct uterm_video *video; @@ -50,15 +48,17 @@ struct kmscon_app { struct kmscon_ui *ui; }; -static void sig_generic(struct ev_signal *sig, int signum, void *data) +static void sig_generic(struct ev_eloop *eloop, struct signalfd_siginfo *info, + void *data) { struct kmscon_app *app = data; ev_eloop_exit(app->eloop); - log_info("terminating due to caught signal %d", signum); + log_info("terminating due to caught signal %d", info->ssi_signo); } -static void sig_child(struct ev_signal *sig, int signum, void *data) +static void sig_child(struct ev_eloop *eloop, struct signalfd_siginfo *info, + void *data) { pid_t pid; int status; @@ -114,10 +114,10 @@ static void destroy_app(struct kmscon_app *app) kmscon_input_unref(app->input); uterm_video_unref(app->video); kmscon_vt_unref(app->vt); + ev_eloop_unregister_signal_cb(app->eloop, SIGCHLD, sig_child, app); + ev_eloop_unregister_signal_cb(app->eloop, SIGINT, sig_generic, app); + ev_eloop_unregister_signal_cb(app->eloop, SIGTERM, sig_generic, app); ev_eloop_rm_eloop(app->vt_eloop); - ev_eloop_rm_signal(app->sig_child); - ev_eloop_rm_signal(app->sig_int); - ev_eloop_rm_signal(app->sig_term); ev_eloop_unref(app->eloop); } @@ -129,18 +129,18 @@ static int setup_app(struct kmscon_app *app) if (ret) goto err_app; - ret = ev_eloop_new_signal(app->eloop, &app->sig_term, SIGTERM, - sig_generic, app); + ret = ev_eloop_register_signal_cb(app->eloop, SIGTERM, + sig_generic, app); if (ret) goto err_app; - ret = ev_eloop_new_signal(app->eloop, &app->sig_int, SIGINT, - sig_generic, app); + ret = ev_eloop_register_signal_cb(app->eloop, SIGINT, + sig_generic, app); if (ret) goto err_app; - ret = ev_eloop_new_signal(app->eloop, &app->sig_child, SIGCHLD, - sig_child, app); + ret = ev_eloop_register_signal_cb(app->eloop, SIGCHLD, + sig_child, app); if (ret) goto err_app;