34#if defined(YAPOR) || defined(THREADS)
35 REINIT_LOCK(DLMallocLock);
38#if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO)
40#define HeapUsed Yap_givemallinfo()
50#if defined(YAPOR) || defined(THREADS)
51 REINIT_LOCK(FreeBlocksLock);
52 REINIT_LOCK(HeapUsedLock);
53 REINIT_LOCK(HeapTopLock);
61 OP_RTABLE = OpRTableAdjust(OP_RTABLE);
64 EITHER_OPCODE = Yap_opcode(_execute_cpred);
65 EXECUTE_CPRED_OPCODE = Yap_opcode(_execute_cpred);
66 EXECUTE_CPRED_OP_CODE = Yap_opcode(_execute_cpred);
67 EXPAND_OP_CODE = Yap_opcode(_expand_index);
68 FAIL_OPCODE = Yap_opcode(_op_fail);
69 INDEX_OPCODE = Yap_opcode(_index_pred);
70 LOCKPRED_OPCODE = Yap_opcode(_lock_pred);
71 ORLAST_OPCODE = Yap_opcode(_or_last);
72 UNDEF_OPCODE = Yap_opcode(_undef_p);
73 RETRY_USERC_OPCODE = Yap_opcode(_retry_userc);
74 EXECUTE_CPRED_OPCODE = Yap_opcode(_execute_cpred);
75 FCALL_OPCODE = Yap_opcode(_fcall);
81 RestoreInvisibleAtoms();
87 TermDollarU = AtomTermAdjust(TermDollarU);
90 USER_MODULE = AtomTermAdjust(USER_MODULE);
91 IDB_MODULE = AtomTermAdjust(IDB_MODULE);
92 ATTRIBUTES_MODULE = AtomTermAdjust(ATTRIBUTES_MODULE);
93 CHARSIO_MODULE = AtomTermAdjust(CHARSIO_MODULE);
94 CHTYPE_MODULE = AtomTermAdjust(CHTYPE_MODULE);
95 TERMS_MODULE = AtomTermAdjust(TERMS_MODULE);
96 SYSTEM_MODULE = AtomTermAdjust(SYSTEM_MODULE);
97 READUTIL_MODULE = AtomTermAdjust(READUTIL_MODULE);
98 HACKS_MODULE = AtomTermAdjust(HACKS_MODULE);
99 ARG_MODULE = AtomTermAdjust(ARG_MODULE);
100 GLOBALS_MODULE = AtomTermAdjust(GLOBALS_MODULE);
101 SWI_MODULE = AtomTermAdjust(SWI_MODULE);
102 DBLOAD_MODULE = AtomTermAdjust(DBLOAD_MODULE);
103 RANGE_MODULE = AtomTermAdjust(RANGE_MODULE);
104 ERROR_MODULE = AtomTermAdjust(ERROR_MODULE);
108 CurrentModules = ModEntryPtrAdjust(CurrentModules);
113 RestoreHiddenPredicates();
118 RestoreFlags(GLOBAL_flagCount);
125#if defined(YAPOR) || defined(THREADS)
129 CreepCode = PtoPredAdjust(CreepCode);
130 UndefHook = PtoPredAdjust(UndefHook);
131 UndefHook0 = PtoPredAdjust(UndefHook0);
132 UserUndefHook = PtoPredAdjust(UserUndefHook);
133 SpyCode = PtoPredAdjust(SpyCode);
134 PredFail = PtoPredAdjust(PredFail);
135 PredTrue = PtoPredAdjust(PredTrue);
137 WakeUpCode = PtoPredAdjust(WakeUpCode);
139 PredCsult = PtoPredAdjust(PredCsult);
140 PredDollarCatch = PtoPredAdjust(PredDollarCatch);
142 PredGetwork = PtoPredAdjust(PredGetwork);
144 PredGoalExpansion = PtoPredAdjust(PredGoalExpansion);
145 PredHandleThrow = PtoPredAdjust(PredHandleThrow);
146 PredIs = PtoPredAdjust(PredIs);
147 PredLogUpdClause = PtoPredAdjust(PredLogUpdClause);
148 PredLogUpdClauseErase = PtoPredAdjust(PredLogUpdClauseErase);
149 PredLogUpdClause0 = PtoPredAdjust(PredLogUpdClause0);
150 PredCall = PtoPredAdjust(PredCall);
151 PredMetaCall = PtoPredAdjust(PredMetaCall);
152 PredPrologCutTo = PtoPredAdjust(PredPrologCutTo);
153 PredProtectStack = PtoPredAdjust(PredProtectStack);
154 PredRecordedWithKey = PtoPredAdjust(PredRecordedWithKey);
155 PredRestoreRegs = PtoPredAdjust(PredRestoreRegs);
156 PredSafeCallCleanup = PtoPredAdjust(PredSafeCallCleanup);
157 PredStaticClause = PtoPredAdjust(PredStaticClause);
158 PredThrow = PtoPredAdjust(PredThrow);
159 PredTraceMetaCall = PtoPredAdjust(PredTraceMetaCall);
160 PredCommentHook = PtoPredAdjust(PredCommentHook);
161 PredProcedure = PtoPredAdjust(PredProcedure);
162 PredUndefinedQuery = PtoPredAdjust(PredUndefinedQuery);
163 PredComma = PtoPredAdjust(PredComma);
164 PredCatch = PtoPredAdjust(PredCatch);
166#ifdef LOW_LEVEL_TRACER
168#if defined(YAPOR) || defined(THREADS)
169 REINIT_LOCK(Yap_low_level_trace_lock);
184 DUMMYCODE->opc = Yap_opcode(_op_fail);
185 FAILCODE->opc = Yap_opcode(_op_fail);
186 NOCODE->opc = Yap_opcode(_Nstop);
187 EXITCODE->opc = Yap_opcode(_Nstop);
188 RestoreEnvInst(ENV_FOR_TRUSTFAIL,&TRUSTFAILCODE,_trust_fail,PredFail);
190 RestoreEnvInst(ENV_FOR_YESCODE,&YESCODE,_Ystop,PredFail);
192 RestoreOtaplInst(RTRYCODE,_retry_and_mark,PredFail);
194 BEAM_RETRY_CODE->opc = Yap_opcode(_beam_retry_code);
197 RestoreOtaplInst(GETWORK,_getwork,PredGetwork);
198 RestoreOtaplInst(GETWORK_SEQ,_getwork_seq,PredGetworkSeq);
199 GETWORK_FIRST_TIME->opc = Yap_opcode(_getwork_first_time);
202 RestoreOtaplInst(LOAD_ANSWER,_table_load_answer,PredFail);
203 RestoreOtaplInst(TRY_ANSWER,_table_try_answer,PredFail);
204 RestoreOtaplInst(ANSWER_RESOLUTION,_table_answer_resolution,PredFail);
205 RestoreOtaplInst(COMPLETION,_table_completion,PredFail);
206#ifdef THREADS_CONSUMER_SHARING
207 RestoreOtaplInst(ANSWER_RESOLUTION_COMPLETION,_table_answer_resolution_completion,PredFail);
214 P_before_spy = PtoOpAdjust(P_before_spy);
216 RETRY_C_RECORDEDP_CODE = PtoOpAdjust(RETRY_C_RECORDEDP_CODE);
217 RETRY_C_RECORDED_K_CODE = PtoOpAdjust(RETRY_C_RECORDED_K_CODE);
228#if defined(YAPOR) || defined(THREADS)
229 REINIT_LOCK(DBTermsListLock);
231 RestoreDBTermsList();
236#if defined(YAPOR) || defined(THREADS)
237 REINIT_LOCK(ExpandClausesListLock);
238 REINIT_LOCK(OpListLock);
249 RestoreUdiControlBlocks();
264 RestoreDBErasedMarker();
265 RestoreLogDBErasedMarker();
267 RestoreDeadStaticClauses();
268 RestoreDeadMegaClauses();
269 RestoreDeadStaticIndices();
270 RestoreDBErasedList();
271 RestoreDBErasedIList();
272#if defined(YAPOR) || defined(THREADS)
273 REINIT_LOCK(DeadStaticClausesLock);
274 REINIT_LOCK(DeadMegaClausesLock);
275 REINIT_LOCK(DeadStaticIndicesLock);
286 OpList = OpListAdjust(OpList);
288 RestoreForeignCode();
294 RestoreEmptyWakeups();
301#if defined(YAPOR) || defined(THREADS)
302 REINIT_LOCK(Blobs_Lock);