fix forgotten unlocks.

This commit is contained in:
Vitor Santos Costa 2010-01-25 09:01:04 +00:00
parent ad3bf0b178
commit ce3a193ae7

View File

@ -8053,6 +8053,7 @@ Yap_absmi(int inp)
UNLOCK(pe->StatisticsForPred.lock); UNLOCK(pe->StatisticsForPred.lock);
ReductionsCounter--; ReductionsCounter--;
if (ReductionsCounter == 0 && ReductionsCounterOn) { if (ReductionsCounter == 0 && ReductionsCounterOn) {
UNLOCK(pe->PELock);
saveregs(); saveregs();
Yap_Error(CALL_COUNTER_UNDERFLOW,TermNil,""); Yap_Error(CALL_COUNTER_UNDERFLOW,TermNil,"");
setregs(); setregs();
@ -8060,6 +8061,7 @@ Yap_absmi(int inp)
} }
PredEntriesCounter--; PredEntriesCounter--;
if (PredEntriesCounter == 0 && PredEntriesCounterOn) { if (PredEntriesCounter == 0 && PredEntriesCounterOn) {
UNLOCK(pe->PELock);
saveregs(); saveregs();
Yap_Error(PRED_ENTRY_COUNTER_UNDERFLOW,TermNil,""); Yap_Error(PRED_ENTRY_COUNTER_UNDERFLOW,TermNil,"");
setregs(); setregs();
@ -8068,6 +8070,7 @@ Yap_absmi(int inp)
if ((pe->PredFlags & (CountPredFlag|ProfiledPredFlag|SpiedPredFlag)) == if ((pe->PredFlags & (CountPredFlag|ProfiledPredFlag|SpiedPredFlag)) ==
CountPredFlag) { CountPredFlag) {
PREG = pe->cs.p_code.TrueCodeOfPred; PREG = pe->cs.p_code.TrueCodeOfPred;
UNLOCK(pe->PELock);
JMPNext(); JMPNext();
} }
} }
@ -8078,6 +8081,7 @@ Yap_absmi(int inp)
UNLOCK(pe->StatisticsForPred.lock); UNLOCK(pe->StatisticsForPred.lock);
if (!(pe->PredFlags & SpiedPredFlag)) { if (!(pe->PredFlags & SpiedPredFlag)) {
PREG = pe->cs.p_code.TrueCodeOfPred; PREG = pe->cs.p_code.TrueCodeOfPred;
UNLOCK(pe->PELock);
JMPNext(); JMPNext();
} }
} }