kernel_liteos_a/kernel/base/ipc
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
..
los_event.c fix: modify event API description 2021-05-11 21:09:24 +08:00
los_futex.c refactor: Refactored the kernel boot process and added a init framework 2021-05-20 16:45:43 +08:00
los_ipcdebug.c remove __cplusplus guards in .c files 2021-04-19 18:28:25 +08:00
los_mux.c remove __cplusplus guards in .c files 2021-04-19 18:28:25 +08:00
los_queue.c fix:fix queuePosition typo 2021-05-19 14:05:28 +08:00
los_queue_debug.c Remove redundant macro definition(OFFSET_OF_FIELD) 2021-05-19 11:20:09 +08:00
los_rwlock.c remove __cplusplus guards in .c files 2021-04-19 18:28:25 +08:00
los_sem.c remove __cplusplus guards in .c files 2021-04-19 18:28:25 +08:00
los_sem_debug.c Remove redundant macro definition(OFFSET_OF_FIELD) 2021-05-19 11:20:09 +08:00
los_signal.c fix: solve SIGCHLD ignored in sigsuspend() 2021-08-26 15:36:13 +08:00