first cut at call counter.

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@580 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
vsc
2002-09-03 14:28:09 +00:00
parent 89a188d5d7
commit 94e9529128
20 changed files with 459 additions and 16 deletions

View File

@@ -157,6 +157,9 @@ DumpActiveGoals (void)
case _retry_profiled:
opnum = op_from_opcode(NEXTOP(b_ptr->cp_ap,l)->opc);
goto restart_cp;
case _count_retry_me:
opnum = op_from_opcode(NEXTOP(b_ptr->cp_ap,l)->opc);
goto restart_cp;
default:
pe = (PredEntry *)(b_ptr->cp_ap->u.ld.p);
}
@@ -417,6 +420,26 @@ Error (yap_error_number type, Term where, char *format,...)
fun = MkFunctor(LookupAtom("abort"),2);
serious = TRUE;
break;
case CALL_COUNTER_UNDERFLOW:
/* Do a long jump */
PredEntriesCounter--;
JumpToEnv(MkAtomTerm(LookupAtom("call_counter")));
P = (yamop *)FAILCODE;
PrologMode &= ~InErrorMode;
return(P);
case PRED_ENTRY_COUNTER_UNDERFLOW:
/* Do a long jump */
JumpToEnv(MkAtomTerm(LookupAtom("call_and_retry_counter")));
P = (yamop *)FAILCODE;
PrologMode &= ~InErrorMode;
return(P);
case RETRY_COUNTER_UNDERFLOW:
/* Do a long jump */
PredEntriesCounter--;
JumpToEnv(MkAtomTerm(LookupAtom("retry_counter")));
P = (yamop *)FAILCODE;
PrologMode &= ~InErrorMode;
return(P);
case DOMAIN_ERROR_ARRAY_OVERFLOW:
{
int i;