spdk_top: Handle signals to exit gracefully
W/o handling signals we end up with messed up consol after spdk_top exited because of a signal interruption. Signed-off-by: Maciej Szwed <maciej.szwed@intel.com> Change-Id: I5d70d43c7a61d94c071451fa2f3f86f700dad068 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1974 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
66b777e605
commit
296303037d
@ -1857,6 +1857,14 @@ draw_interface(void)
|
||||
doupdate();
|
||||
}
|
||||
|
||||
static void finish(int sig)
|
||||
{
|
||||
/* End ncurses mode */
|
||||
endwin();
|
||||
spdk_jsonrpc_client_close(g_rpc_client);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
static void
|
||||
setup_ncurses(void)
|
||||
{
|
||||
@ -1875,6 +1883,11 @@ setup_ncurses(void)
|
||||
printf("Your terminal does not support color\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* Handle signals to exit gracfully cleaning up ncurses */
|
||||
(void) signal(SIGINT, finish);
|
||||
(void) signal(SIGPIPE, finish);
|
||||
(void) signal(SIGABRT, finish);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1916,10 +1929,7 @@ int main(int argc, char **argv)
|
||||
draw_interface();
|
||||
show_stats();
|
||||
|
||||
/* End curses mode */
|
||||
endwin();
|
||||
|
||||
spdk_jsonrpc_client_close(g_rpc_client);
|
||||
finish(0);
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user