修正OsSigTimedWaitNoLock只清除一个pending信号

This commit is contained in:
laokz 2020-12-05 17:38:05 +08:00
parent f5f823ba99
commit 4ea33fa9f9
1 changed files with 1 additions and 1 deletions

View File

@ -459,8 +459,8 @@ int OsSigTimedWaitNoLock(sigset_t *set, siginfo_t *info, unsigned int timeout)
/* If pendingflag & set > 0, shound clear pending flag */ /* If pendingflag & set > 0, shound clear pending flag */
sigset_t clear = sigcb->sigPendFlag & *set; sigset_t clear = sigcb->sigPendFlag & *set;
if (clear) { if (clear) {
sigcb->sigPendFlag ^= clear;
ret = FindFirstSetedBit((UINT64)clear) + 1; ret = FindFirstSetedBit((UINT64)clear) + 1;
sigcb->sigPendFlag ^= SIGNO2SET(ret);
} else { } else {
OsSigAddSet(set, SIGKILL); OsSigAddSet(set, SIGKILL);
OsSigAddSet(set, SIGSTOP); OsSigAddSet(set, SIGSTOP);