Commit 29630303 authored by Maciej Szwed's avatar Maciej Szwed Committed by Jim Harris
Browse files

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: default avatarMaciej 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: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
parent 66b777e6
Loading
Loading
Loading
Loading
+14 −4
Original line number Diff line number Diff line
@@ -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);
}