diff --git a/C/absmi.c b/C/absmi.c index 7c0b4859a..5fc031907 100644 --- a/C/absmi.c +++ b/C/absmi.c @@ -3032,8 +3032,8 @@ Yap_absmi(int inp) { CreepFlag = CalculateStackGap(); SREG = (CELL *) CreepCode; + UNLOCK(SignalLock); } - UNLOCK(SignalLock); PREG = ((PredEntry *)SREG)->CodeOfPred; #ifdef LOW_LEVEL_TRACER if (Yap_do_low_level_trace) @@ -14012,7 +14012,6 @@ Yap_absmi(int inp) FAIL(); } setregs_and_ycache(); - LOCK(SignalLock); ActiveSignals &= ~YAP_TROVF_SIGNAL; CreepFlag = CalculateStackGap(); if (!ActiveSignals) { diff --git a/C/exec.c b/C/exec.c index 9a2a4d246..aca068444 100644 --- a/C/exec.c +++ b/C/exec.c @@ -624,11 +624,9 @@ p_execute_clause(void) } else { code = Yap_ClauseFromTerm(clt)->ClCode; } - LOCK(SignalLock); if (ActiveSignals & YAP_CREEP_SIGNAL) { Yap_signal(YAP_CREEP_SIGNAL); } - UNLOCK(SignalLock); return CallPredicate(RepPredProp(pe), cut_cp, code); } @@ -751,11 +749,9 @@ p_execute_nonstop(void) } /* N = arity; */ /* call may not define new system predicates!! */ - LOCK(SignalLock); if (ActiveSignals & YAP_CREEP_SIGNAL) { Yap_signal(YAP_CREEP_SIGNAL); } - UNLOCK(SignalLock); if (RepPredProp(pe)->PredFlags & SpiedPredFlag) { return CallPredicate(RepPredProp(pe), B, RepPredProp(pe)->cs.p_code.TrueCodeOfPred); } else if ((RepPredProp(pe)->PredFlags & (AsmPredFlag|CPredFlag)) &&