!120 【bug】sigaction中sigsuspend的后执行信号顺序与预期不符
Merge pull request !120 from give-me-five/master
This commit is contained in:
commit
1ce743344a
|
@ -510,7 +510,6 @@ int OsSigSuspend(const sigset_t *set)
|
||||||
{
|
{
|
||||||
unsigned int intSave;
|
unsigned int intSave;
|
||||||
LosTaskCB *rtcb = NULL;
|
LosTaskCB *rtcb = NULL;
|
||||||
unsigned int sigTempProcMask;
|
|
||||||
sigset_t setSuspend;
|
sigset_t setSuspend;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -519,7 +518,6 @@ int OsSigSuspend(const sigset_t *set)
|
||||||
}
|
}
|
||||||
SCHEDULER_LOCK(intSave);
|
SCHEDULER_LOCK(intSave);
|
||||||
rtcb = OsCurrTaskGet();
|
rtcb = OsCurrTaskGet();
|
||||||
sigTempProcMask = rtcb->sig.sigprocmask;
|
|
||||||
|
|
||||||
/* Wait signal calc */
|
/* Wait signal calc */
|
||||||
setSuspend = FULL_SIGNAL_SET & (~(*set));
|
setSuspend = FULL_SIGNAL_SET & (~(*set));
|
||||||
|
@ -530,8 +528,6 @@ int OsSigSuspend(const sigset_t *set)
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
PRINT_ERR("FUNC %s LINE = %d, ret = %x\n", __FUNCTION__, __LINE__, ret);
|
PRINT_ERR("FUNC %s LINE = %d, ret = %x\n", __FUNCTION__, __LINE__, ret);
|
||||||
}
|
}
|
||||||
/* Restore old sigprocmask */
|
|
||||||
OsSigMaskSwitch(rtcb, sigTempProcMask);
|
|
||||||
|
|
||||||
SCHEDULER_UNLOCK(intSave);
|
SCHEDULER_UNLOCK(intSave);
|
||||||
return -EINTR;
|
return -EINTR;
|
||||||
|
|
Loading…
Reference in New Issue