add missing GC registration for places
Merge to 5.2
This commit is contained in:
parent
dc912ee6de
commit
32b5390ad2
5
collects/tests/racket/place-master-gc.rkt
Normal file
5
collects/tests/racket/place-master-gc.rkt
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#lang racket/base
|
||||||
|
|
||||||
|
;; Try to trigger master GCs:
|
||||||
|
(for ([i 100000])
|
||||||
|
(make-shared-bytes 1024))
|
|
@ -292,6 +292,7 @@ Scheme_Env *scheme_engine_instance_init()
|
||||||
#if defined(MZ_PRECISE_GC) && defined(MZ_USE_PLACES)
|
#if defined(MZ_PRECISE_GC) && defined(MZ_USE_PLACES)
|
||||||
{
|
{
|
||||||
void *signal_handle;
|
void *signal_handle;
|
||||||
|
REGISTER_SO(place_object);
|
||||||
place_object = (Scheme_Place_Object*) scheme_make_place_object();
|
place_object = (Scheme_Place_Object*) scheme_make_place_object();
|
||||||
signal_handle = scheme_get_signal_handle();
|
signal_handle = scheme_get_signal_handle();
|
||||||
GC_set_put_external_event_fd(signal_handle);
|
GC_set_put_external_event_fd(signal_handle);
|
||||||
|
|
|
@ -2189,6 +2189,7 @@ static void *place_start_proc_after_stack(void *data_arg, void *stack_base) {
|
||||||
channel = place_data->channel;
|
channel = place_data->channel;
|
||||||
}
|
}
|
||||||
place_obj = place_data->place_obj;
|
place_obj = place_data->place_obj;
|
||||||
|
REGISTER_SO(place_object);
|
||||||
place_object = place_obj;
|
place_object = place_obj;
|
||||||
place_obj->refcount++;
|
place_obj->refcount++;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user