diff options
author | Trumeet <yuuta@yuuta.moe> | 2022-07-26 17:17:09 -0700 |
---|---|---|
committer | Trumeet <yuuta@yuuta.moe> | 2022-07-26 17:17:09 -0700 |
commit | 8b07bf593e54dd876e30d0cb1c7c7226d0d1b1e2 (patch) | |
tree | fa39391ea1eef6e87a563ee417ba709a33dae596 /client/libacron/apps/acronc/handler_signal.c | |
parent | 219e4bb54375995fa377a1bcf9601a77cf6f1fee (diff) | |
download | acron-8b07bf593e54dd876e30d0cb1c7c7226d0d1b1e2.tar acron-8b07bf593e54dd876e30d0cb1c7c7226d0d1b1e2.tar.gz acron-8b07bf593e54dd876e30d0cb1c7c7226d0d1b1e2.tar.bz2 acron-8b07bf593e54dd876e30d0cb1c7c7226d0d1b1e2.zip |
feat(acronc): add acronc(1), the Acron cli
Still in early development, Windows support is incomplete.
Signed-off-by: Trumeet <yuuta@yuuta.moe>
Diffstat (limited to 'client/libacron/apps/acronc/handler_signal.c')
-rw-r--r-- | client/libacron/apps/acronc/handler_signal.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/client/libacron/apps/acronc/handler_signal.c b/client/libacron/apps/acronc/handler_signal.c new file mode 100644 index 0000000..1d0ba7e --- /dev/null +++ b/client/libacron/apps/acronc/handler_signal.c @@ -0,0 +1,40 @@ +/* + * Created by yuuta on 7/24/22. + */ + +#include "handler.h" +#include "log.h" + +static uv_signal_t sigint; +static struct uv_obj obj_sigint = { + .obj = &sigint, + .running = false +}; +static uv_signal_t sigterm; +static struct uv_obj obj_sigterm = { + .obj = &sigterm, + .running = false +}; + +static void on_signal(uv_signal_t *handle, int signum) { + LOGDV("on_signal(handle = %p): %d", + handle, + signum); + uv_signal_stop(&sigint); + obj_sigint.running = false; + uv_signal_stop(&sigterm); + obj_sigterm.running = false; + on_exit(EXIT_SIGNAL); +} + +int h_signal(void) { + int r; + if ((r = uv_signal_init(loop, &sigint))) return r; + if ((r = uv_signal_start(&sigint, on_signal, SIGINT))) return r; + + obj_sigint.running = true; + if ((r = uv_signal_init(loop, &sigterm))) return r; + if ((r = uv_signal_start(&sigterm, on_signal, SIGTERM))) return r; + obj_sigterm.running = true; + return 0; +} |