X-Git-Url: https://git.lttng.org/?p=lttngtop.git;a=blobdiff_plain;f=src%2Fcursesdisplay.c;h=02764dd19976996f13fb1f11a580531aa3285b60;hp=25fe1f94e075836daf83d85861407e1bd1817103;hb=1a70b8acdfee3652b0295827825919d710c26486;hpb=b520ab458ea26829d00fca98f4bbb90309fd30df diff --git a/src/cursesdisplay.c b/src/cursesdisplay.c index 25fe1f9..02764dd 100644 --- a/src/cursesdisplay.c +++ b/src/cursesdisplay.c @@ -74,11 +74,15 @@ void reset_ncurses() { curs_set(1); endwin(); - exit(0); + quit = 1; + sem_post(&pause_sem); + sem_post(&timer); + sem_post(&goodtodisplay); } static void handle_sigterm(int signal) { + pthread_cancel(keyboard_thread); reset_ncurses(); } @@ -119,6 +123,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 +1496,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;