fix lwp_free tty switch to foreground error (#7945)
This commit is contained in:
parent
1b5ed06d38
commit
a6959a9ef8
|
@ -469,13 +469,18 @@ void lwp_free(struct rt_lwp* lwp)
|
|||
if (lwp->tty != RT_NULL)
|
||||
{
|
||||
rt_mutex_take(&lwp->tty->lock, RT_WAITING_FOREVER);
|
||||
old_lwp = tty_pop(&lwp->tty->head, RT_NULL);
|
||||
rt_mutex_release(&lwp->tty->lock);
|
||||
if (lwp->tty->foreground == lwp)
|
||||
{
|
||||
old_lwp = tty_pop(&lwp->tty->head, RT_NULL);
|
||||
lwp->tty->foreground = old_lwp;
|
||||
lwp->tty = RT_NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
tty_pop(&lwp->tty->head, lwp);
|
||||
}
|
||||
rt_mutex_release(&lwp->tty->lock);
|
||||
|
||||
lwp->tty = RT_NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue