修正OsSigTimedWaitNoLock只清除一个pending信号
This commit is contained in:
parent
f5f823ba99
commit
4ea33fa9f9
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue