Disable collection on master GC for now
svn: r12809
This commit is contained in:
parent
17547b977f
commit
ae6d07d76a
|
@ -80,6 +80,11 @@ static THREAD_LOCAL NewGC *GC;
|
||||||
#define GC_get_GC() (GC)
|
#define GC_get_GC() (GC)
|
||||||
#define GC_set_GC(gc) (GC = gc)
|
#define GC_set_GC(gc) (GC = gc)
|
||||||
|
|
||||||
|
inline static int is_master_gc(NewGC *gc) {
|
||||||
|
return (MASTERGC == gc);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#include "msgprint.c"
|
#include "msgprint.c"
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -1548,6 +1553,7 @@ void GC_switch_out_master_gc() {
|
||||||
if(!initialized) {
|
if(!initialized) {
|
||||||
initialized = 1;
|
initialized = 1;
|
||||||
MASTERGC = GC_get_GC();
|
MASTERGC = GC_get_GC();
|
||||||
|
MASTERGC->dumping_avoid_collection = 1;
|
||||||
save_globals_to_gc(MASTERGC);
|
save_globals_to_gc(MASTERGC);
|
||||||
GC_construct_child_gc();
|
GC_construct_child_gc();
|
||||||
}
|
}
|
||||||
|
@ -2554,6 +2560,7 @@ static void garbage_collect(NewGC *gc, int force_full)
|
||||||
mark_roots(gc);
|
mark_roots(gc);
|
||||||
mark_immobiles(gc);
|
mark_immobiles(gc);
|
||||||
TIME_STEP("rooted");
|
TIME_STEP("rooted");
|
||||||
|
if (!is_master_gc(gc))
|
||||||
GC_mark_variable_stack(GC_variable_stack, 0, get_stack_base(gc), NULL);
|
GC_mark_variable_stack(GC_variable_stack, 0, get_stack_base(gc), NULL);
|
||||||
|
|
||||||
TIME_STEP("stacked");
|
TIME_STEP("stacked");
|
||||||
|
@ -2602,6 +2609,7 @@ static void garbage_collect(NewGC *gc, int force_full)
|
||||||
repair_weak_finalizer_structs(gc);
|
repair_weak_finalizer_structs(gc);
|
||||||
repair_roots(gc);
|
repair_roots(gc);
|
||||||
repair_immobiles(gc);
|
repair_immobiles(gc);
|
||||||
|
if (!is_master_gc(gc))
|
||||||
GC_fixup_variable_stack(GC_variable_stack, 0, get_stack_base(gc), NULL);
|
GC_fixup_variable_stack(GC_variable_stack, 0, get_stack_base(gc), NULL);
|
||||||
TIME_STEP("reparied roots");
|
TIME_STEP("reparied roots");
|
||||||
repair_heap(gc);
|
repair_heap(gc);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user