diff --git a/C/heapgc.c b/C/heapgc.c index e5170cc4d..21cc58573 100644 --- a/C/heapgc.c +++ b/C/heapgc.c @@ -2410,7 +2410,7 @@ sweep_trail(choiceptr gc_B, tr_fr_ptr old_TR) gc may be called when executing a dynamic goal, check PP to avoid deadlock */ - PredEntry *ap = cl->ClPred; + PredEntry *ap = indx->ClPred; if (ap != PP) LOCK(ap->PELock); #endif diff --git a/C/tracer.c b/C/tracer.c index 9c47f3c40..c63bcf400 100644 --- a/C/tracer.c +++ b/C/tracer.c @@ -150,6 +150,8 @@ check_area(void) } */ +PredEntry *old_p = NULL; + void low_level_trace(yap_low_level_port port, PredEntry *pred, CELL *args) { @@ -161,7 +163,8 @@ low_level_trace(yap_low_level_port port, PredEntry *pred, CELL *args) LOCK(Yap_heap_regs->low_level_trace_lock); sc = Yap_heap_regs; vsc_count++; - if (FALSE && vsc_count < 59800LL) { + old_p = pred; + if (LCL0[-30]) { UNLOCK(Yap_heap_regs->low_level_trace_lock); return; }