kernel_liteos_a/kernel
Guangyao Ma 5a80d4e1a3 fix: solve SIGCHLD ignored in sigsuspend()
在如下场景signal可能得不到及时处理:
1、进程A设置信号a阻塞
2、进程A收到信号a
3、进程A调用sigsuspend结束阻塞
原则上,步骤三应该立刻处理之前被阻塞的信号a,调用信号处理函数,并且sigsuspend
返回。现在的问题是,信号a没有得到及时处理,并且进程A阻塞在sigsuspend()调用流程
。
本次修改,在1、2、3场景下,sigsuspend()处理过程中,如果发现已经收到信号,待处理
时,会立刻进行调度切换,再次调度回来时,在调度模块中,会先主动处理已经收到的信
号,最后sigsuspend返回用户态。

close #I47CKK

Signed-off-by: Guangyao Ma <guangyao.ma@outlook.com>
Change-Id: I1b30a938a2d18c3f58989d40eee0503ceffb27b5
2021-08-26 15:36:13 +08:00
..
base fix: solve SIGCHLD ignored in sigsuspend() 2021-08-26 15:36:13 +08:00
common !304 mmc驱动代码上库 2021-06-09 20:46:02 +08:00
extended fix: race condition in liteipc 2021-06-17 12:01:25 +08:00
include !260 【轻量级 PR】:fix: fix stored typo 2021-06-04 13:54:53 +08:00
user remove __cplusplus guards in .c files 2021-04-19 18:28:25 +08:00
BUILD.gn remove __cplusplus guards in .c files 2021-04-19 18:28:25 +08:00
Kconfig remove __cplusplus guards in .c files 2021-04-19 18:28:25 +08:00