parent
2ef6673708
commit
f1a52d96a5
10
gc.c
10
gc.c
@ -2571,6 +2571,8 @@ Init_heap(void)
|
|||||||
objspace->id_to_obj_tbl = st_init_numtable();
|
objspace->id_to_obj_tbl = st_init_numtable();
|
||||||
objspace->obj_to_id_tbl = st_init_numtable();
|
objspace->obj_to_id_tbl = st_init_numtable();
|
||||||
|
|
||||||
|
dont_gc = 1;
|
||||||
|
|
||||||
gc_stress_set(objspace, ruby_initial_gc_stress);
|
gc_stress_set(objspace, ruby_initial_gc_stress);
|
||||||
|
|
||||||
#if RGENGC_ESTIMATE_OLDMALLOC
|
#if RGENGC_ESTIMATE_OLDMALLOC
|
||||||
@ -2584,6 +2586,14 @@ Init_heap(void)
|
|||||||
finalizer_table = st_init_numtable();
|
finalizer_table = st_init_numtable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Init_gc_stress(void)
|
||||||
|
{
|
||||||
|
rb_objspace_t *objspace = &rb_objspace;
|
||||||
|
|
||||||
|
dont_gc = 0;
|
||||||
|
}
|
||||||
|
|
||||||
typedef int each_obj_callback(void *, void *, size_t, void *);
|
typedef int each_obj_callback(void *, void *, size_t, void *);
|
||||||
|
|
||||||
struct each_obj_args {
|
struct each_obj_args {
|
||||||
|
1
inits.c
1
inits.c
@ -67,5 +67,6 @@ rb_call_inits(void)
|
|||||||
CALL(vm_trace);
|
CALL(vm_trace);
|
||||||
CALL(vm_stack_canary);
|
CALL(vm_stack_canary);
|
||||||
CALL(ast);
|
CALL(ast);
|
||||||
|
CALL(gc_stress);
|
||||||
}
|
}
|
||||||
#undef CALL
|
#undef CALL
|
||||||
|
@ -384,6 +384,10 @@ class TestGc < Test::Unit::TestCase
|
|||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_gc_stress_at_startup
|
||||||
|
assert_in_out_err([{"RUBY_DEBUG"=>"gc_stress"}], '', [], [], '[Bug #15784]', success: true)
|
||||||
|
end
|
||||||
|
|
||||||
def test_gc_disabled_start
|
def test_gc_disabled_start
|
||||||
begin
|
begin
|
||||||
disabled = GC.disable
|
disabled = GC.disable
|
||||||
|
Loading…
x
Reference in New Issue
Block a user