diff --git a/C/heapgc.c b/C/heapgc.c index 2aaa57245..b789610ca 100755 --- a/C/heapgc.c +++ b/C/heapgc.c @@ -97,47 +97,6 @@ typedef struct RB_red_blk_node { #define LOCAL_cont_top0 (cont *)LOCAL_sTR #endif -#if !defined(YAPOR) && !defined(THREADS) -/* in a single gc */ -static unsigned long int LOCAL_total_marked, LOCAL_total_oldies; /* number of heap objects marked */ - -#ifdef EASY_SHUNTING -static choiceptr LOCAL_current_B; - -static tr_fr_ptr LOCAL_sTR, LOCAL_sTR0; - -static CELL *LOCAL_prev_HB; -#endif - -static tr_fr_ptr LOCAL_new_TR; - -static CELL *LOCAL_HGEN; - -char *LOCAL_bp; - -static int LOCAL_discard_trail_entries = 0; - -#ifdef HYBRID_SCHEME -static CELL_PTR *LOCAL_iptop; -#endif - -#ifndef EASY_SHUNTING -static cont *LOCAL_cont_top0; -#endif -static cont *LOCAL_cont_top; - -static gc_ma_hash_entry LOCAL_gc_ma_hash_table[GC_MAVARS_HASH_SIZE]; - -static gc_ma_hash_entry *LOCAL_gc_ma_h_top, *LOCAL_gc_ma_h_list; - -static UInt LOCAL_gc_timestamp; /* an unsigned int */ - -static ADDR LOCAL_db_vec, LOCAL_db_vec0; - -static rb_red_blk_node *LOCAL_db_root, *LOCAL_db_nil; - -#endif /* !defined(YAPOR) && !defined(THREADS) */ - /* support for hybrid garbage collection scheme */ static void diff --git a/H/dlocals.h b/H/dlocals.h index 5fad7e10c..d22a2b79b 100644 --- a/H/dlocals.h +++ b/H/dlocals.h @@ -80,23 +80,21 @@ #define LOCAL_total_choicepoints WL->total_cps #endif #define LOCAL_consult_level WL->consult_level_ - #if defined(YAPOR) || defined(THREADS) #define LOCAL_SignalLock WL->signal_lock +#endif #define LOCAL_total_marked WL->tot_marked #define LOCAL_total_oldies WL->tot_oldies -#if DEBUG && COROUTINING -#define LOCAL_total_smarked WL->tot_smarked -#endif #define LOCAL_current_B WL->wl_current_B #define LOCAL_prev_HB WL->wl_prev_HB #define LOCAL_HGEN WL->hgen #define LOCAL_iptop WL->ip_top -#if GC_NO_TAGS + +#if defined(GC_NO_TAGS) #define LOCAL_bp WL->b_p #endif -#if defined(TABLING) || defined(YAPOR_SBA) +#if !defined(TABLING) && !defined(YAPOR_SBA) && (defined(YAPOR) || defined(THREADS)) #define LOCAL_sTR WL->wl_sTR #define LOCAL_sTR0 WL->wl_sTR0 #define LOCAL_new_TR WL->new_tr @@ -104,7 +102,7 @@ #define LOCAL_sTR WL->wl_sTR #define LOCAL_sTR0 WL->wl_sTR0 #define LOCAL_new_TR WL->new_tr -#endif +#endif /* !TABLING && !YAPOR_SBA && (YAPOR || THREADS) */ #define LOCAL_cont_top0 WL->conttop0 #define LOCAL_cont_top WL->conttop #define LOCAL_discard_trail_entries WL->disc_trail_entries @@ -116,7 +114,6 @@ #define LOCAL_db_vec0 WL->DB_vec0 #define LOCAL_db_root WL->DB_root #define LOCAL_db_nil WL->DB_nil -#endif /* defined(YAPOR) || defined(THREADS) */ #define LOCAL_gc_restore WL->gc_restore #define LOCAL_DynamicArrays WL->dynamic_arrays #define LOCAL_StaticArrays WL->static_arrays @@ -133,8 +130,8 @@ #define LOCAL_execution WL->_execution #ifdef THREADS #define LOCAL_ThreadHandle WL->thread_handle -#define FOREIGN_ThreadHandle(wid) (Yap_WLocal[(wid)]->thread_handle) -#define MY_ThreadHandle (Yap_WLocal[worker_id]->thread_handle) +#define FOREIGN_ThreadHandle(wid) (Yap_WLocal[(wid)]->thread_handle) +#define MY_ThreadHandle (Yap_WLocal[worker_id]->thread_handle) #endif diff --git a/H/heapgc.h b/H/heapgc.h index 80ccded12..e747f8bff 100755 --- a/H/heapgc.h +++ b/H/heapgc.h @@ -77,10 +77,6 @@ (CellPtr(B) < CellPtr(val) && CellPtr(val) <= \ LCL0 && HEAP_PTR(val)))) -#if !defined(YAPOR) && !defined(THREADS) -extern char *LOCAL_bp; -#endif - #define MARK_BIT ((char)1) #define RMARK_BIT ((char)2) diff --git a/H/hlocals.h b/H/hlocals.h index cb4a4d2d7..82e59679e 100644 --- a/H/hlocals.h +++ b/H/hlocals.h @@ -57,7 +57,7 @@ typedef struct worker_local { int debug_on; char* scanner_stack; struct scanner_extra_alloc* scanner_extra_blocks; - struct DB_TERM *ball_term; + struct DB_TERM* ball_term; UInt active_signals; UInt i_pred_arity; yamop* prof_end; @@ -82,31 +82,29 @@ typedef struct worker_local { Int total_cps; #endif int consult_level_; - #if defined(YAPOR) || defined(THREADS) lockvar signal_lock; +#endif Int tot_marked; Int tot_oldies; -#if DEBUG && COROUTINING - UInt tot_smarked; -#endif - struct choicept *wl_current_B; + struct choicept* wl_current_B; CELL* wl_prev_HB; CELL* hgen; CELL** ip_top; -#if GC_NO_TAGS + +#if defined(GC_NO_TAGS) char* b_p; #endif -#if defined(TABLING) || defined(YAPOR_SBA) +#if !defined(TABLING) && !defined(YAPOR_SBA) && (defined(YAPOR) || defined(THREADS)) + Term* wl_sTR; + Term* wl_sTR0; + Term* new_tr; +#else struct trail_frame* wl_sTR; struct trail_frame* wl_sTR0; struct trail_frame* new_tr; -#else - Term *wl_sTR; - Term *wl_sTR0; - Term *new_tr; -#endif +#endif /* !TABLING && !YAPOR_SBA && (YAPOR || THREADS) */ struct gc_mark_continuation* conttop0; struct gc_mark_continuation* conttop; int disc_trail_entries; @@ -118,7 +116,6 @@ typedef struct worker_local { ADDR DB_vec0; struct RB_red_blk_node* DB_root; struct RB_red_blk_node* DB_nil; -#endif /* defined(YAPOR) || defined(THREADS) */ sigjmp_buf gc_restore; struct array_entry* dynamic_arrays; struct static_array_entry* static_arrays; @@ -131,12 +128,12 @@ typedef struct worker_local { Int* label_first_array; UInt label_first_array_sz; - struct PL_local_data *Yap_ld_; + struct PL_local_data* Yap_ld_; struct open_query_struct* _execution; #ifdef THREADS struct thandle thread_handle; -#define FOREIGN_ThreadHandle(wid) (Yap_WLocal[(wid)]->thread_handle) -#define MY_ThreadHandle (Yap_WLocal[worker_id]->thread_handle) +#define FOREIGN_ThreadHandle(wid) (Yap_WLocal[(wid)]->thread_handle) +#define MY_ThreadHandle (Yap_WLocal[worker_id]->thread_handle) #endif } w_local; diff --git a/H/ilocals.h b/H/ilocals.h index d5d3fbbac..043130761 100644 --- a/H/ilocals.h +++ b/H/ilocals.h @@ -80,23 +80,21 @@ static void InitWorker(int wid) { FOREIGN(wid)->total_cps = 0; #endif FOREIGN(wid)->consult_level_ = 0; - #if defined(YAPOR) || defined(THREADS) INIT_LOCK(FOREIGN(wid)->signal_lock); +#endif FOREIGN(wid)->tot_marked = 0L; FOREIGN(wid)->tot_oldies = 0L; -#if DEBUG && COROUTINING - FOREIGN(wid)->tot_smarked = 0L; -#endif FOREIGN(wid)->wl_current_B = NULL; FOREIGN(wid)->wl_prev_HB = NULL; FOREIGN(wid)->hgen = NULL; FOREIGN(wid)->ip_top = NULL; -#if GC_NO_TAGS + +#if defined(GC_NO_TAGS) FOREIGN(wid)->b_p = NULL; #endif -#if defined(TABLING) || defined(YAPOR_SBA) +#if !defined(TABLING) && !defined(YAPOR_SBA) && (defined(YAPOR) || defined(THREADS)) FOREIGN(wid)->wl_sTR = NULL; FOREIGN(wid)->wl_sTR0 = NULL; FOREIGN(wid)->new_tr = NULL; @@ -104,7 +102,7 @@ static void InitWorker(int wid) { FOREIGN(wid)->wl_sTR = NULL; FOREIGN(wid)->wl_sTR0 = NULL; FOREIGN(wid)->new_tr = NULL; -#endif +#endif /* !TABLING && !YAPOR_SBA && (YAPOR || THREADS) */ FOREIGN(wid)->conttop0 = NULL; FOREIGN(wid)->conttop = NULL; FOREIGN(wid)->disc_trail_entries = 0; @@ -116,7 +114,6 @@ static void InitWorker(int wid) { FOREIGN(wid)->DB_vec0 = NULL; FOREIGN(wid)->DB_root = NULL; FOREIGN(wid)->DB_nil = NULL; -#endif /* defined(YAPOR) || defined(THREADS) */ FOREIGN(wid)->dynamic_arrays = NULL; FOREIGN(wid)->static_arrays = NULL; @@ -133,8 +130,8 @@ static void InitWorker(int wid) { FOREIGN(wid)->_execution = NULL; #ifdef THREADS InitThreadHandle(wid); -#define FOREIGN_ThreadHandle(wid) (Yap_WLocal[(wid)]->thread_handle) -#define MY_ThreadHandle (Yap_WLocal[worker_id]->thread_handle) +#define FOREIGN_ThreadHandle(wid) (Yap_WLocal[(wid)]->thread_handle) +#define MY_ThreadHandle (Yap_WLocal[worker_id]->thread_handle) #endif } diff --git a/H/rlocals.h b/H/rlocals.h index d061f11d0..db758a4e4 100644 --- a/H/rlocals.h +++ b/H/rlocals.h @@ -80,23 +80,21 @@ static void RestoreWorker(int wid USES_REGS) { #endif - #if defined(YAPOR) || defined(THREADS) REINIT_LOCK(FOREIGN(wid)->signal_lock); - - - -#if DEBUG && COROUTINING - #endif -#if GC_NO_TAGS + + + + +#if defined(GC_NO_TAGS) #endif -#if defined(TABLING) || defined(YAPOR_SBA) +#if !defined(TABLING) && !defined(YAPOR_SBA) && (defined(YAPOR) || defined(THREADS)) @@ -104,7 +102,7 @@ static void RestoreWorker(int wid USES_REGS) { -#endif +#endif /* !TABLING && !YAPOR_SBA && (YAPOR || THREADS) */ @@ -116,7 +114,6 @@ static void RestoreWorker(int wid USES_REGS) { -#endif /* defined(YAPOR) || defined(THREADS) */ FOREIGN(wid)->dynamic_arrays = PtoArrayEAdjust(FOREIGN(wid)->dynamic_arrays); FOREIGN(wid)->static_arrays = PtoArraySAdjust(FOREIGN(wid)->static_arrays); @@ -133,8 +130,8 @@ static void RestoreWorker(int wid USES_REGS) { #ifdef THREADS -#define FOREIGN_ThreadHandle(wid) (Yap_WLocal[(wid)]->thread_handle) -#define MY_ThreadHandle (Yap_WLocal[worker_id]->thread_handle) +#define FOREIGN_ThreadHandle(wid) (Yap_WLocal[(wid)]->thread_handle) +#define MY_ThreadHandle (Yap_WLocal[worker_id]->thread_handle) #endif } diff --git a/misc/LOCALS b/misc/LOCALS index 517a5bd6b..9031db9b6 100644 --- a/misc/LOCALS +++ b/misc/LOCALS @@ -2,156 +2,152 @@ START_WORKER_LOCAL // Streams -int c_input_stream LOCAL_c_input_stream =0 -int c_output_stream LOCAL_c_output_stream =1 -int c_error_stream LOCAL_c_error_stream =2 +int c_input_stream LOCAL_c_input_stream =0 +int c_output_stream LOCAL_c_output_stream =1 +int c_error_stream LOCAL_c_error_stream =2 /* shifts and restore: per local data-structure */ -restoreinfo rinfo -. rinfo.old_ASP LOCAL_OldASP =NULL -. rinfo.old_LCL0 LOCAL_OldLCL0 =NULL -. rinfo.old_TR LOCAL_OldTR =NULL -. rinfo.old_GlobalBase LOCAL_OldGlobalBase =NULL -. rinfo.old_H LOCAL_OldH =NULL -. rinfo.old_H0 LOCAL_OldH0 =NULL -. rinfo.old_TrailBase LOCAL_OldTrailBase =NULL -. rinfo.old_TrailTop LOCAL_OldTrailTop =NULL -. rinfo.old_HeapBase LOCAL_OldHeapBase =NULL -. rinfo.old_HeapTop LOCAL_OldHeapTop =NULL -. rinfo.cl_diff LOCAL_ClDiff =0L -. rinfo.g_diff LOCAL_GDiff =0L -. rinfo.h_diff LOCAL_HDiff =0L -. rinfo.g_diff0 LOCAL_GDiff0 =0L -. rinfo.g_split LOCAL_GSplit =NULL -. rinfo.l_diff LOCAL_LDiff =0L -. rinfo.tr_diff LOCAL_TrDiff =0L -. rinfo.x_diff LOCAL_XDiff =0L -. rinfo.delay_diff LOCAL_DelayDiff =0L -. rinfo.base_diff LOCAL_BaseDiff =0L +restoreinfo rinfo +. rinfo.old_ASP LOCAL_OldASP =NULL +. rinfo.old_LCL0 LOCAL_OldLCL0 =NULL +. rinfo.old_TR LOCAL_OldTR =NULL +. rinfo.old_GlobalBase LOCAL_OldGlobalBase =NULL +. rinfo.old_H LOCAL_OldH =NULL +. rinfo.old_H0 LOCAL_OldH0 =NULL +. rinfo.old_TrailBase LOCAL_OldTrailBase =NULL +. rinfo.old_TrailTop LOCAL_OldTrailTop =NULL +. rinfo.old_HeapBase LOCAL_OldHeapBase =NULL +. rinfo.old_HeapTop LOCAL_OldHeapTop =NULL +. rinfo.cl_diff LOCAL_ClDiff =0L +. rinfo.g_diff LOCAL_GDiff =0L +. rinfo.h_diff LOCAL_HDiff =0L +. rinfo.g_diff0 LOCAL_GDiff0 =0L +. rinfo.g_split LOCAL_GSplit =NULL +. rinfo.l_diff LOCAL_LDiff =0L +. rinfo.tr_diff LOCAL_TrDiff =0L +. rinfo.x_diff LOCAL_XDiff =0L +. rinfo.delay_diff LOCAL_DelayDiff =0L +. rinfo.base_diff LOCAL_BaseDiff =0L -struct reduction_counters call_counters -. call_counters.reductions LOCAL_ReductionsCounter =0L -. call_counters.reductions_retries LOCAL_PredEntriesCounter =0L -. call_counters.retries LOCAL_RetriesCounter =0L -. call_counters.reductions_on LOCAL_ReductionsCounterOn =0L -. call_counters.reductions_retries_on LOCAL_PredEntriesCounterOn =0L -. call_counters.retries_on LOCAL_RetriesCounterOn =0L +struct reduction_counters call_counters +. call_counters.reductions LOCAL_ReductionsCounter =0L +. call_counters.reductions_retries LOCAL_PredEntriesCounter =0L +. call_counters.retries LOCAL_RetriesCounter =0L +. call_counters.reductions_on LOCAL_ReductionsCounterOn =0L +. call_counters.reductions_retries_on LOCAL_PredEntriesCounterOn =0L +. call_counters.retries_on LOCAL_RetriesCounterOn =0L -int interrupts_disabled LOCAL_InterruptsDisabled =FALSE +int interrupts_disabled LOCAL_InterruptsDisabled =FALSE // support for consulting files /* current consult stack */ -union CONSULT_OBJ* consultsp LOCAL_ConsultSp =NULL +union CONSULT_OBJ* consultsp LOCAL_ConsultSp =NULL /* current maximum number of cells in consult stack */ -UInt consultcapacity LOCAL_ConsultCapacity void +UInt consultcapacity LOCAL_ConsultCapacity void /* top of consult stack */ -union CONSULT_OBJ* consultbase LOCAL_ConsultBase =NULL +union CONSULT_OBJ* consultbase LOCAL_ConsultBase =NULL /* low-water mark for consult */ -union CONSULT_OBJ* consultlow LOCAL_ConsultLow =NULL +union CONSULT_OBJ* consultlow LOCAL_ConsultLow =NULL //global variables -Term global_arena LOCAL_GlobalArena =0L TermToGlobalOrAtomAdjust -UInt global_arena_overflows LOCAL_GlobalArenaOverflows =0L -Int arena_overflows LOCAL_ArenaOverflows =0L -Int depth_arenas LOCAL_DepthArenas =0 +Term global_arena LOCAL_GlobalArena =0L TermToGlobalOrAtomAdjust +UInt global_arena_overflows LOCAL_GlobalArenaOverflows =0L +Int arena_overflows LOCAL_ArenaOverflows =0L +Int depth_arenas LOCAL_DepthArenas =0 -int arith_error LOCAL_ArithError =FALSE -struct pred_entry* last_asserted_pred LOCAL_LastAssertedPred =NULL -int debug_on LOCAL_DebugOn =FALSE -char* scanner_stack LOCAL_ScannerStack =NULL -struct scanner_extra_alloc* scanner_extra_blocks LOCAL_ScannerExtraBlocks =NULL -struct DB_TERM *ball_term LOCAL_BallTerm =NULL RestoreBallTerm(wid) -UInt active_signals LOCAL_ActiveSignals =0L -UInt i_pred_arity LOCAL_IPredArity =0L -yamop* prof_end LOCAL_ProfEnd =NULL -int uncaught_throw LOCAL_UncaughtThrow =FALSE -int doing_undefp LOCAL_DoingUndefp =FALSE -Int start_line LOCAL_StartLine =0L -scratch_block scratchpad LOCAL_ScratchPad InitScratchPad(wid) +int arith_error LOCAL_ArithError =FALSE +struct pred_entry* last_asserted_pred LOCAL_LastAssertedPred =NULL +int debug_on LOCAL_DebugOn =FALSE +char* scanner_stack LOCAL_ScannerStack =NULL +struct scanner_extra_alloc* scanner_extra_blocks LOCAL_ScannerExtraBlocks =NULL +struct DB_TERM* ball_term LOCAL_BallTerm =NULL RestoreBallTerm(wid) +UInt active_signals LOCAL_ActiveSignals =0L +UInt i_pred_arity LOCAL_IPredArity =0L +yamop* prof_end LOCAL_ProfEnd =NULL +int uncaught_throw LOCAL_UncaughtThrow =FALSE +int doing_undefp LOCAL_DoingUndefp =FALSE +Int start_line LOCAL_StartLine =0L +scratch_block scratchpad LOCAL_ScratchPad InitScratchPad(wid) #ifdef COROUTINING -Term woken_goals LOCAL_WokenGoals =0L TermToGlobalAdjust -Term atts_mutable_list LOCAL_AttsMutableList =0L TermToGlobalAdjust +Term woken_goals LOCAL_WokenGoals =0L TermToGlobalAdjust +Term atts_mutable_list LOCAL_AttsMutableList =0L TermToGlobalAdjust #endif // gc_stuff -Term gc_generation LOCAL_GcGeneration =0L TermToGlobalAdjust -Term gc_phase LOCAL_GcPhase =0L TermToGlobalAdjust -UInt gc_current_phase LOCAL_GcCurrentPhase =0L -UInt gc_calls LOCAL_GcCalls =0L -Int tot_gc_time LOCAL_TotGcTime =0L -YAP_ULONG_LONG tot_gc_recovered LOCAL_TotGcRecovered =0L -Int last_gc_time LOCAL_LastGcTime =0L -Int last_ss_time LOCAL_LastSSTime =0L +Term gc_generation LOCAL_GcGeneration =0L TermToGlobalAdjust +Term gc_phase LOCAL_GcPhase =0L TermToGlobalAdjust +UInt gc_current_phase LOCAL_GcCurrentPhase =0L +UInt gc_calls LOCAL_GcCalls =0L +Int tot_gc_time LOCAL_TotGcTime =0L +YAP_ULONG_LONG tot_gc_recovered LOCAL_TotGcRecovered =0L +Int last_gc_time LOCAL_LastGcTime =0L +Int last_ss_time LOCAL_LastSSTime =0L #if LOW_LEVEL_TRACER -Int total_cps LOCAL_total_choicepoints =0 +Int total_cps LOCAL_total_choicepoints =0 #endif -int consult_level_ LOCAL_consult_level =0 +int consult_level_ LOCAL_consult_level =0 -// global variables that cannot be global in a thread/or-p implementation #if defined(YAPOR) || defined(THREADS) -lockvar signal_lock LOCAL_SignalLock MkLock +lockvar signal_lock LOCAL_SignalLock MkLock +#endif /* in a single gc */ -Int tot_marked LOCAL_total_marked =0L -Int tot_oldies LOCAL_total_oldies =0L -#if DEBUG && COROUTINING -UInt tot_smarked LOCAL_total_smarked =0L +Int tot_marked LOCAL_total_marked =0L +Int tot_oldies LOCAL_total_oldies =0L +struct choicept* wl_current_B LOCAL_current_B =NULL +CELL* wl_prev_HB LOCAL_prev_HB =NULL +CELL* hgen LOCAL_HGEN =NULL +CELL** ip_top LOCAL_iptop =NULL +//#endif +#if defined(GC_NO_TAGS) +char* b_p LOCAL_bp =NULL #endif -struct choicept *wl_current_B LOCAL_current_B =NULL -CELL* wl_prev_HB LOCAL_prev_HB =NULL -CELL* hgen LOCAL_HGEN =NULL -CELL** ip_top LOCAL_iptop =NULL -#if GC_NO_TAGS -char* b_p LOCAL_bp =NULL -#endif -#if defined(TABLING) || defined(YAPOR_SBA) -struct trail_frame* wl_sTR LOCAL_sTR =NULL -struct trail_frame* wl_sTR0 LOCAL_sTR0 =NULL -struct trail_frame* new_tr LOCAL_new_TR =NULL + +#if !defined(TABLING) && !defined(YAPOR_SBA) && (defined(YAPOR) || defined(THREADS)) +Term* wl_sTR LOCAL_sTR =NULL +Term* wl_sTR0 LOCAL_sTR0 =NULL +Term* new_tr LOCAL_new_TR =NULL #else -Term *wl_sTR LOCAL_sTR =NULL -Term *wl_sTR0 LOCAL_sTR0 =NULL -Term *new_tr LOCAL_new_TR =NULL -#endif -struct gc_mark_continuation* conttop0 LOCAL_cont_top0 =NULL -struct gc_mark_continuation* conttop LOCAL_cont_top =NULL -int disc_trail_entries LOCAL_discard_trail_entries =0 -gc_ma_hash_entry Gc_ma_hash_table[GC_MAVARS_HASH_SIZE] LOCAL_gc_ma_hash_table void -gc_ma_hash_entry* Gc_ma_h_top LOCAL_gc_ma_h_top =NULL -gc_ma_hash_entry* Gc_ma_h_list LOCAL_gc_ma_h_list =NULL -UInt Gc_timestamp LOCAL_gc_timestamp =0L -ADDR DB_vec LOCAL_db_vec =NULL -ADDR DB_vec0 LOCAL_db_vec0 =NULL -struct RB_red_blk_node* DB_root LOCAL_db_root =NULL -struct RB_red_blk_node* DB_nil LOCAL_db_nil =NULL -#endif /* defined(YAPOR) || defined(THREADS) */ +struct trail_frame* wl_sTR LOCAL_sTR =NULL +struct trail_frame* wl_sTR0 LOCAL_sTR0 =NULL +struct trail_frame* new_tr LOCAL_new_TR =NULL +#endif /* !TABLING && !YAPOR_SBA && (YAPOR || THREADS) */ +struct gc_mark_continuation* conttop0 LOCAL_cont_top0 =NULL +struct gc_mark_continuation* conttop LOCAL_cont_top =NULL +int disc_trail_entries LOCAL_discard_trail_entries =0 +gc_ma_hash_entry Gc_ma_hash_table[GC_MAVARS_HASH_SIZE] LOCAL_gc_ma_hash_table void +gc_ma_hash_entry* Gc_ma_h_top LOCAL_gc_ma_h_top =NULL +gc_ma_hash_entry* Gc_ma_h_list LOCAL_gc_ma_h_list =NULL +UInt Gc_timestamp LOCAL_gc_timestamp =0L +ADDR DB_vec LOCAL_db_vec =NULL +ADDR DB_vec0 LOCAL_db_vec0 =NULL +struct RB_red_blk_node* DB_root LOCAL_db_root =NULL +struct RB_red_blk_node* DB_nil LOCAL_db_nil =NULL - -sigjmp_buf gc_restore LOCAL_gc_restore void -struct array_entry* dynamic_arrays LOCAL_DynamicArrays =NULL PtoArrayEAdjust -struct static_array_entry* static_arrays LOCAL_StaticArrays =NULL PtoArraySAdjust -struct global_entry* global_variables LOCAL_GlobalVariables =NULL PtoGlobalEAdjust -int allow_restart LOCAL_AllowRestart =FALSE +sigjmp_buf gc_restore LOCAL_gc_restore void +struct array_entry* dynamic_arrays LOCAL_DynamicArrays =NULL PtoArrayEAdjust +struct static_array_entry* static_arrays LOCAL_StaticArrays =NULL PtoArraySAdjust +struct global_entry* global_variables LOCAL_GlobalVariables =NULL PtoGlobalEAdjust +int allow_restart LOCAL_AllowRestart =FALSE // Thread Local Area for Fast Storage of Intermediate Compiled Code. -struct mem_blk* cmem_first_block LOCAL_CMemFirstBlock =NULL -UInt cmem_first_block_sz LOCAL_CMemFirstBlockSz =0L +struct mem_blk* cmem_first_block LOCAL_CMemFirstBlock =NULL +UInt cmem_first_block_sz LOCAL_CMemFirstBlockSz =0L // Thread Local Area for Labels. -Int* label_first_array LOCAL_LabelFirstArray =NULL -UInt label_first_array_sz LOCAL_LabelFirstArraySz =0L +Int* label_first_array LOCAL_LabelFirstArray =NULL +UInt label_first_array_sz LOCAL_LabelFirstArraySz =0L // Thread Local Area for SWI-Prolog emulation routines. -struct PL_local_data *Yap_ld_ LOCAL_PL_local_data_p =Yap_InitThreadIO(wid) - -struct open_query_struct* _execution LOCAL_execution =NULL +struct PL_local_data* Yap_ld_ LOCAL_PL_local_data_p =Yap_InitThreadIO(wid) +struct open_query_struct* _execution LOCAL_execution =NULL #ifdef THREADS -struct thandle thread_handle LOCAL_ThreadHandle InitThreadHandle(wid) -#define FOREIGN_ThreadHandle(wid) (Yap_WLocal[(wid)]->thread_handle) -#define MY_ThreadHandle (Yap_WLocal[worker_id]->thread_handle) +struct thandle thread_handle LOCAL_ThreadHandle InitThreadHandle(wid) +#define FOREIGN_ThreadHandle(wid) (Yap_WLocal[(wid)]->thread_handle) +#define MY_ThreadHandle (Yap_WLocal[worker_id]->thread_handle) #endif // END WORKER LOCAL STUFF