From: dapengx.yu@intel.com To: beilei.xing@intel.com, xiaoyun.li@intel.com, wenzhuo.lu@intel.com, bernard.iremonger@intel.com, stephen@networkplumber.org Cc: dev@dpdk.org, Dapeng Yu <dapengx.yu@intel.com>, stable@dpdk.org Subject: [dpdk-dev] [PATCH v2] app/testpmd: avoid exit without terminal restore Date: Mon, 25 Jan 2021 11:29:53 +0800 Message-ID: <20210125032953.430840-1-dapengx.yu@intel.com> (raw) In-Reply-To: <20201224035748.67012-1-dapengx.yu@intel.com> From: Dapeng Yu <dapengx.yu@intel.com> In interactive mode, if testpmd exit by calling rte_exit without restore terminal attributes, terminal will not echo keyboard input. register a function with atexit() in prompt(), when exit() in rte_exit() is called, the registered function restores terminal attributes. Fixes: 5a8fb55c48ab ("app/testpmd: support unidirectional configuration") Cc: stable@dpdk.org Signed-off-by: Dapeng Yu <dapengx.yu@intel.com> --- app/test-pmd/cmdline.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 89034c8b7..f7e18ba3d 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -17116,6 +17116,7 @@ cmdline_read_from_file(const char *filename) void prompt(void) { + int ret; /* initialize non-constant commands */ cmd_set_fwd_mode_init(); cmd_set_fwd_retry_mode_init(); @@ -17123,15 +17124,23 @@ prompt(void) testpmd_cl = cmdline_stdin_new(main_ctx, "testpmd> "); if (testpmd_cl == NULL) return; + + ret = atexit(prompt_exit); + if (ret != 0) + printf("Cannot set exit function for cmdline\n"); + cmdline_interact(testpmd_cl); - cmdline_stdin_exit(testpmd_cl); + if (ret != 0) + cmdline_stdin_exit(testpmd_cl); } void prompt_exit(void) { - if (testpmd_cl != NULL) + if (testpmd_cl != NULL) { cmdline_quit(testpmd_cl); + cmdline_stdin_exit(testpmd_cl); + } } static void -- 2.27.0
next prev parent reply other threads:[~2021-01-25 3:30 UTC|newest] Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-12-24 3:57 [dpdk-dev] [PATCH] app/testpmd: avoid exit without resource release dapengx.yu 2020-12-25 3:03 ` Stephen Hemminger 2020-12-25 5:09 ` Yu, DapengX 2021-01-15 3:28 ` Yu, DapengX 2021-01-15 5:50 ` Xing, Beilei 2021-01-15 6:05 ` Yu, DapengX 2021-01-15 9:21 ` Li, Xiaoyun 2021-01-18 11:47 ` Yu, DapengX 2021-01-25 3:29 ` dapengx.yu [this message] 2021-01-26 6:33 ` [dpdk-dev] [PATCH v2] app/testpmd: avoid exit without terminal restore Li, Xiaoyun 2021-01-26 7:13 ` Yu, DapengX 2021-01-26 7:44 ` Yu, DapengX 2021-01-26 8:24 ` Li, Xiaoyun 2021-01-29 10:46 ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210125032953.430840-1-dapengx.yu@intel.com \ --to=dapengx.yu@intel.com \ --cc=beilei.xing@intel.com \ --cc=bernard.iremonger@intel.com \ --cc=dev@dpdk.org \ --cc=stable@dpdk.org \ --cc=stephen@networkplumber.org \ --cc=wenzhuo.lu@intel.com \ --cc=xiaoyun.li@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
DPDK patches and discussions This inbox may be cloned and mirrored by anyone: git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \ dev@dpdk.org public-inbox-index dev Example config snippet for mirrors. Newsgroup available over NNTP: nntp://inbox.dpdk.org/inbox.dpdk.dev AGPL code for this site: git clone https://public-inbox.org/public-inbox.git