syscall: the signal received during system call processing is not processed.

Refs: #1176
Fujitsu: POSTK_DEBUG_TEMP_FIX_56
Change-Id: I410160ccbcef3ef49a0e37611a608bc87c97e63b
This commit is contained in:
Tomoki Shirasawa
2018-09-07 14:54:45 +09:00
committed by Masamichi Takagi
parent e4da71010c
commit 5e760db417
10 changed files with 485 additions and 22 deletions

View File

@@ -1001,6 +1001,11 @@ getsigpending(struct thread *thread, int delflag){
struct sig_pending *
hassigpending(struct thread *thread)
{
if (list_empty(&thread->sigpending) &&
list_empty(&thread->sigcommon->sigpending)) {
return NULL;
}
return getsigpending(thread, 0);
}
@@ -1057,6 +1062,11 @@ check_signal(unsigned long rc, void *regs0, int num)
goto out;
}
if (list_empty(&thread->sigpending) &&
list_empty(&thread->sigcommon->sigpending)) {
goto out;
}
for(;;){
pending = getsigpending(thread, 1);
if(!pending) {