From 852fd592b073281162627ef4570d75d96e1263fb Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Tue, 6 Sep 2011 11:46:45 +0200 Subject: pingu: catch SIGINT so we can cleanup at exit --- pingu.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'pingu.c') diff --git a/pingu.c b/pingu.c index 16f6570..04859b0 100644 --- a/pingu.c +++ b/pingu.c @@ -110,12 +110,18 @@ static int daemonize(void) return 0; } +static void sigint_cb(struct ev_loop *loop, ev_signal *w, int revents) +{ + ev_break(loop, EVBREAK_ALL); +} + int main(int argc, char *argv[]) { int c; const char *config_file = DEFAULT_CONFIG; int verbose = 0; static struct ev_loop *loop; + static struct ev_signal signal_watcher; while ((c = getopt(argc, argv, "c:dhp:Vv")) != -1) { switch (c) { @@ -161,6 +167,10 @@ int main(int argc, char *argv[]) return 1; } + ev_signal_init(&signal_watcher, sigint_cb, SIGINT); + ev_signal_start(loop, &signal_watcher); + ev_run(loop, 0); return 0; } + -- cgit v1.2.3