未验证 提交 b2402029 编写于 作者: S Shell 提交者: GitHub

[rt-smart][fix/lwp] don't restore terminal for background lwp (#6847)

* [fix/lwp] don't restore term for background lwp
上级 7b35c8d3
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#define BAUD_RATE_115200 115200 #define BAUD_RATE_115200 115200
#define BAUD_RATE_230400 230400 #define BAUD_RATE_230400 230400
#define BAUD_RATE_460800 460800 #define BAUD_RATE_460800 460800
#define BAUD_RATE_500000 500000
#define BAUD_RATE_921600 921600 #define BAUD_RATE_921600 921600
#define BAUD_RATE_2000000 2000000 #define BAUD_RATE_2000000 2000000
#define BAUD_RATE_2500000 2500000 #define BAUD_RATE_2500000 2500000
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#define BAUD_RATE_115200 115200 #define BAUD_RATE_115200 115200
#define BAUD_RATE_230400 230400 #define BAUD_RATE_230400 230400
#define BAUD_RATE_460800 460800 #define BAUD_RATE_460800 460800
#define BAUD_RATE_500000 500000
#define BAUD_RATE_921600 921600 #define BAUD_RATE_921600 921600
#define BAUD_RATE_2000000 2000000 #define BAUD_RATE_2000000 2000000
#define BAUD_RATE_2500000 2500000 #define BAUD_RATE_2500000 2500000
......
...@@ -922,6 +922,7 @@ static const struct speed_baudrate_item _tbl[] = ...@@ -922,6 +922,7 @@ static const struct speed_baudrate_item _tbl[] =
{B115200, BAUD_RATE_115200}, {B115200, BAUD_RATE_115200},
{B230400, BAUD_RATE_230400}, {B230400, BAUD_RATE_230400},
{B460800, BAUD_RATE_460800}, {B460800, BAUD_RATE_460800},
{B500000, BAUD_RATE_500000},
{B921600, BAUD_RATE_921600}, {B921600, BAUD_RATE_921600},
{B2000000, BAUD_RATE_2000000}, {B2000000, BAUD_RATE_2000000},
{B3000000, BAUD_RATE_3000000}, {B3000000, BAUD_RATE_3000000},
......
...@@ -1024,6 +1024,7 @@ const static struct speed_baudrate_item _tbl[] = ...@@ -1024,6 +1024,7 @@ const static struct speed_baudrate_item _tbl[] =
{B115200, BAUD_RATE_115200}, {B115200, BAUD_RATE_115200},
{B230400, BAUD_RATE_230400}, {B230400, BAUD_RATE_230400},
{B460800, BAUD_RATE_460800}, {B460800, BAUD_RATE_460800},
{B500000, BAUD_RATE_500000},
{B921600, BAUD_RATE_921600}, {B921600, BAUD_RATE_921600},
{B2000000, BAUD_RATE_2000000}, {B2000000, BAUD_RATE_2000000},
{B3000000, BAUD_RATE_3000000}, {B3000000, BAUD_RATE_3000000},
......
...@@ -1282,6 +1282,10 @@ pid_t lwp_execve(char *filename, int debug, int argc, char **argv, char **envp) ...@@ -1282,6 +1282,10 @@ pid_t lwp_execve(char *filename, int debug, int argc, char **argv, char **envp)
} }
} }
else
{
lwp->background = RT_TRUE;
}
thread->lwp = lwp; thread->lwp = lwp;
#ifndef ARCH_MM_MMU #ifndef ARCH_MM_MMU
struct lwp_app_head *app_head = (struct lwp_app_head*)lwp->text_entry; struct lwp_app_head *app_head = (struct lwp_app_head*)lwp->text_entry;
......
...@@ -126,6 +126,7 @@ struct rt_lwp ...@@ -126,6 +126,7 @@ struct rt_lwp
struct lwp_avl_struct *address_search_head; /* for addressed object fast rearch */ struct lwp_avl_struct *address_search_head; /* for addressed object fast rearch */
char working_directory[DFS_PATH_MAX]; char working_directory[DFS_PATH_MAX];
int debug; int debug;
int background;
uint32_t bak_first_ins; uint32_t bak_first_ins;
#ifdef LWP_ENABLE_ASID #ifdef LWP_ENABLE_ASID
......
...@@ -445,7 +445,7 @@ void lwp_free(struct rt_lwp* lwp) ...@@ -445,7 +445,7 @@ void lwp_free(struct rt_lwp* lwp)
} }
rt_hw_interrupt_enable(level); rt_hw_interrupt_enable(level);
/* for parent */ if (!lwp->background)
{ {
struct termios *old_stdin_termios = get_old_termios(); struct termios *old_stdin_termios = get_old_termios();
struct rt_lwp *old_lwp = NULL; struct rt_lwp *old_lwp = NULL;
...@@ -466,7 +466,10 @@ void lwp_free(struct rt_lwp* lwp) ...@@ -466,7 +466,10 @@ void lwp_free(struct rt_lwp* lwp)
lwp->tty = RT_NULL; lwp->tty = RT_NULL;
} }
} }
}
/* for parent */
{
if (lwp->parent) if (lwp->parent)
{ {
struct rt_thread *thread; struct rt_thread *thread;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册