fix creep handling

This commit is contained in:
Vítor Santos Costa 2014-09-08 17:12:05 -05:00
parent 87a0a7af74
commit 0a64e9f062

View File

@ -903,8 +903,10 @@ interrupt_fail( USES_REGS1 )
be recovered. automatically by fail, so be recovered. automatically by fail, so
better wait. better wait.
*/ */
if (!Yap_has_a_signal() || if (Yap_has_signal( YAP_CREEP_SIGNAL ) ) {
Yap_has_signals( YAP_CDOVF_SIGNAL, YAP_CREEP_SIGNAL )) { return FALSE;
}
if (Yap_has_signal( YAP_CDOVF_SIGNAL ) ) {
return FALSE; return FALSE;
} }
/* make sure we have the correct environment for continuation */ /* make sure we have the correct environment for continuation */
@ -1207,8 +1209,7 @@ interrupt_dexecute( USES_REGS1 )
#endif #endif
PP = P->y_u.pp.p0; PP = P->y_u.pp.p0;
pe = P->y_u.pp.p; pe = P->y_u.pp.p;
if (Yap_get_signal(YAP_CREEP_SIGNAL) && if ((PP->ExtraPredFlags & (NoTracePredFlag|HiddenPredFlag)) && Yap_only_has_signal(YAP_CREEP_SIGNAL)) {
(PP->ExtraPredFlags & (NoTracePredFlag|HiddenPredFlag))) {
return 2; return 2;
} }
/* set S for next instructions */ /* set S for next instructions */