diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2011-09-06 11:46:45 +0200 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2011-09-06 11:46:45 +0200 |
commit | 852fd592b073281162627ef4570d75d96e1263fb (patch) | |
tree | be0158cabc2e311792e69f1d3695ede117131913 /pingu.c | |
parent | 9e4c8217d3f2c7490eb6a26a49e67aeac96ca7c2 (diff) | |
download | pingu-852fd592b073281162627ef4570d75d96e1263fb.tar.bz2 pingu-852fd592b073281162627ef4570d75d96e1263fb.tar.xz |
pingu: catch SIGINT so we can cleanup at exit
Diffstat (limited to 'pingu.c')
-rw-r--r-- | pingu.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -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; } + |