From d33fa59ee4ff573d58568173bf08fd0a09dc005f Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Sun, 8 Apr 2012 15:19:06 +0200 Subject: [PATCH] Immediately register the process with the env it forms part of. --- src/c/threads/process.d | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/c/threads/process.d b/src/c/threads/process.d index e30fbef0b..8255acaec 100644 --- a/src/c/threads/process.d +++ b/src/c/threads/process.d @@ -345,8 +345,11 @@ ecl_import_current_thread(cl_object name, cl_object bindings) process->process.thread = current; ecl_list_process(process); - process->process.env = env = _ecl_alloc_env(); + /* Link environment and process together */ + env = _ecl_alloc_env(); env->own_process = process; + process->process.env = env; + ecl_set_process_env(env); ecl_init_env(env); env->bindings_array = process->process.initial_bindings; @@ -462,9 +465,12 @@ mp_process_enable(cl_object process) process->process.parent->process.env->trap_fpe_bits; ecl_list_process(process); - process->process.env = process_env = _ecl_alloc_env(); - ecl_init_env(process_env); + /* Link environment and process together */ + process_env = _ecl_alloc_env(); process_env->own_process = process; + process->process.env = process_env; + + ecl_init_env(process_env); process_env->trap_fpe_bits = process->process.trap_fpe_bits; process_env->bindings_array = process->process.initial_bindings; process_env->thread_local_bindings_size =