diff --git a/C/absmi.c b/C/absmi.c index e00160258..d7e738b9d 100644 --- a/C/absmi.c +++ b/C/absmi.c @@ -8143,7 +8143,6 @@ Yap_absmi(int inp) PREG = pt0->CodeOfPred; /* for profiler */ #ifdef THREADS - pthread_mutex_lock(&(ThreadHandle[worker_id].tlock)); UNLOCK(ThreadHandlesLock); #endif save_pc(); diff --git a/C/exec.c b/C/exec.c index 2b84ed433..91da5760c 100644 --- a/C/exec.c +++ b/C/exec.c @@ -792,6 +792,12 @@ p_execute_nonstop(void) if (ActiveSignals & YAP_CREEP_SIGNAL && !Yap_InterruptsDisabled) { Yap_signal(YAP_CREEP_SIGNAL); } +#if defined(YAPOR) || defined(THREADS) + if (RepPredProp(pe)->PredFlags & LogUpdatePredFlag) { + PP = RepPredProp(pe); + LOCK(PP->PELock); + } +#endif return CallPredicate(RepPredProp(pe), B, RepPredProp(pe)->cs.p_code.TrueCodeOfPred); } else { if (ActiveSignals & YAP_CREEP_SIGNAL && !Yap_InterruptsDisabled &&