exit cleanly
[lttngtop.git] / src / cursesdisplay.c
index 25fe1f94e075836daf83d85861407e1bd1817103..c8ac5db55f93c8a990adcbd699f29d6dd3c5396e 100644 (file)
@@ -74,11 +74,13 @@ void reset_ncurses()
 {
        curs_set(1);
        endwin();
-       exit(0);
+       quit = 1;
 }
 
 static void handle_sigterm(int signal)
 {
+       fprintf(stderr, "caugh signal\n");
+       pthread_cancel(keyboard_thread);
        reset_ncurses();
 }
 
@@ -119,6 +121,7 @@ void init_screen()
                define_key("\033[17;2~", KEY_F(18));
        }
        signal(SIGTERM, handle_sigterm);
+       signal(SIGINT, handle_sigterm);
        mousemask(BUTTON1_CLICKED, NULL);
        refresh();
 }
@@ -1491,6 +1494,8 @@ void *handle_keyboard(void *p)
                case KEY_F(10):
                case 'q':
                        reset_ncurses();
+                       /* exit keyboard thread */
+                       pthread_exit(0);
                        break;
                case 't':
                        toggle_threads *= -1;
@@ -1502,7 +1507,6 @@ void *handle_keyboard(void *p)
                        } else {
                                resume_display();
                        }
-                       break;
                case 'r':
                        toggle_pref_panel();
                        break;
This page took 0.023238 seconds and 4 git commands to generate.