From 70d2b36450e25614440babebaff445f653299203 Mon Sep 17 00:00:00 2001 From: Karthik Ramanan Date: Fri, 21 Feb 2014 16:42:58 +0530 Subject: [PATCH] added signal handler for cleanup Signed-off-by: Karthik Ramanan --- kmscube.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/kmscube.c b/kmscube.c index a371909..bc2e89d 100644 --- a/kmscube.c +++ b/kmscube.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -629,6 +630,21 @@ void print_usage() printf("\t-c : Display using connector_id [if not specified, use the first connected connector]\n"); } +int kms_signalhandler(int signum) +{ + switch(signum) { + case SIGINT: + case SIGTERM: + printf("Handling signal number = %d\n", signum); + cleanup_kmscube(); + break; + default: + printf("Unknown signal\n"); + break; + } + exit(1); +} + int main(int argc, char *argv[]) { fd_set fds; @@ -642,6 +658,9 @@ int main(int argc, char *argv[]) int ret; int opt; + signal(SIGINT, kms_signalhandler); + signal(SIGTERM, kms_signalhandler); + while ((opt = getopt(argc, argv, "ahc:")) != -1) { switch(opt) { case 'a': -- 2.26.2