locking fixes.
This commit is contained in:
parent
b903602ac1
commit
9624026beb
@ -3032,8 +3032,8 @@ Yap_absmi(int inp)
|
|||||||
{
|
{
|
||||||
CreepFlag = CalculateStackGap();
|
CreepFlag = CalculateStackGap();
|
||||||
SREG = (CELL *) CreepCode;
|
SREG = (CELL *) CreepCode;
|
||||||
}
|
|
||||||
UNLOCK(SignalLock);
|
UNLOCK(SignalLock);
|
||||||
|
}
|
||||||
PREG = ((PredEntry *)SREG)->CodeOfPred;
|
PREG = ((PredEntry *)SREG)->CodeOfPred;
|
||||||
#ifdef LOW_LEVEL_TRACER
|
#ifdef LOW_LEVEL_TRACER
|
||||||
if (Yap_do_low_level_trace)
|
if (Yap_do_low_level_trace)
|
||||||
@ -14012,7 +14012,6 @@ Yap_absmi(int inp)
|
|||||||
FAIL();
|
FAIL();
|
||||||
}
|
}
|
||||||
setregs_and_ycache();
|
setregs_and_ycache();
|
||||||
LOCK(SignalLock);
|
|
||||||
ActiveSignals &= ~YAP_TROVF_SIGNAL;
|
ActiveSignals &= ~YAP_TROVF_SIGNAL;
|
||||||
CreepFlag = CalculateStackGap();
|
CreepFlag = CalculateStackGap();
|
||||||
if (!ActiveSignals) {
|
if (!ActiveSignals) {
|
||||||
|
4
C/exec.c
4
C/exec.c
@ -624,11 +624,9 @@ p_execute_clause(void)
|
|||||||
} else {
|
} else {
|
||||||
code = Yap_ClauseFromTerm(clt)->ClCode;
|
code = Yap_ClauseFromTerm(clt)->ClCode;
|
||||||
}
|
}
|
||||||
LOCK(SignalLock);
|
|
||||||
if (ActiveSignals & YAP_CREEP_SIGNAL) {
|
if (ActiveSignals & YAP_CREEP_SIGNAL) {
|
||||||
Yap_signal(YAP_CREEP_SIGNAL);
|
Yap_signal(YAP_CREEP_SIGNAL);
|
||||||
}
|
}
|
||||||
UNLOCK(SignalLock);
|
|
||||||
return CallPredicate(RepPredProp(pe), cut_cp, code);
|
return CallPredicate(RepPredProp(pe), cut_cp, code);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -751,11 +749,9 @@ p_execute_nonstop(void)
|
|||||||
}
|
}
|
||||||
/* N = arity; */
|
/* N = arity; */
|
||||||
/* call may not define new system predicates!! */
|
/* call may not define new system predicates!! */
|
||||||
LOCK(SignalLock);
|
|
||||||
if (ActiveSignals & YAP_CREEP_SIGNAL) {
|
if (ActiveSignals & YAP_CREEP_SIGNAL) {
|
||||||
Yap_signal(YAP_CREEP_SIGNAL);
|
Yap_signal(YAP_CREEP_SIGNAL);
|
||||||
}
|
}
|
||||||
UNLOCK(SignalLock);
|
|
||||||
if (RepPredProp(pe)->PredFlags & SpiedPredFlag) {
|
if (RepPredProp(pe)->PredFlags & SpiedPredFlag) {
|
||||||
return CallPredicate(RepPredProp(pe), B, RepPredProp(pe)->cs.p_code.TrueCodeOfPred);
|
return CallPredicate(RepPredProp(pe), B, RepPredProp(pe)->cs.p_code.TrueCodeOfPred);
|
||||||
} else if ((RepPredProp(pe)->PredFlags & (AsmPredFlag|CPredFlag)) &&
|
} else if ((RepPredProp(pe)->PredFlags & (AsmPredFlag|CPredFlag)) &&
|
||||||
|
Reference in New Issue
Block a user