diff --git a/src/mzscheme/src/env.c b/src/mzscheme/src/env.c index e4d15942bf..9cbab52fe0 100644 --- a/src/mzscheme/src/env.c +++ b/src/mzscheme/src/env.c @@ -288,7 +288,6 @@ static void init_toplevel_local_offsets_hashtable_caches() } } - /* READ-ONLY GLOBAL structures ONE-TIME initialization */ Scheme_Env *scheme_engine_instance_init() { Scheme_Env *env; @@ -328,6 +327,7 @@ Scheme_Env *scheme_engine_instance_init() { #if defined(MZ_PRECISE_GC) && defined(MZ_USE_PLACES) GC_switch_out_master_gc(); + spawn_master_scheme_place(); #endif place_instance_init_pre_kernel(stack_base); diff --git a/src/mzscheme/src/places.c b/src/mzscheme/src/places.c index b81f29cea5..8f2d38aa95 100644 --- a/src/mzscheme/src/places.c +++ b/src/mzscheme/src/places.c @@ -154,7 +154,7 @@ static void load_namespace_utf8(Scheme_Object *namespace_name) { Scheme_Object *a[1]; Scheme_Thread * volatile p; mz_jmp_buf * volatile saved_error_buf; - mz_jmp_buf volatile new_error_buf; + mz_jmp_buf new_error_buf; nsreq = scheme_builtin_value("namespace-require"); a[0] = scheme_make_pair(scheme_intern_symbol("lib"), @@ -218,6 +218,15 @@ static void *place_start_proc(void *data_arg) { return scheme_true; } +static void *master_scheme_place(void *data) { +#ifdef MZ_PRECISE_GC +#endif + return NULL; +} + +void spawn_master_scheme_place() { + scheme_master_proc_thread = mz_proc_thread_create(master_scheme_place, NULL); +} /*========================================================================*/ /* precise GC traversers */