From 3e5fda66149e6d167d9f483dcb44c9a068925c6b Mon Sep 17 00:00:00 2001 From: Kevin Tew Date: Tue, 9 Sep 2008 15:56:32 +0000 Subject: [PATCH] More Thread LOCAL svn: r11612 --- src/mzscheme/src/env.c | 4 ++-- src/mzscheme/src/fun.c | 16 +++++++++------- src/mzscheme/src/stxobj.c | 4 +++- src/mzscheme/src/thread.c | 6 +++--- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/mzscheme/src/env.c b/src/mzscheme/src/env.c index fe2fe759c7..e3a10f3fb0 100644 --- a/src/mzscheme/src/env.c +++ b/src/mzscheme/src/env.c @@ -65,8 +65,8 @@ static Scheme_Object *toplevels[MAX_CONST_TOPLEVEL_DEPTH][MAX_CONST_TOPLEVEL_POS /* globals THREAD_LOCAL * if locked theses are probably sharable*/ -static Scheme_Hash_Table *toplevels_ht; -static Scheme_Hash_Table *locals_ht[2]; +static THREAD_LOCAL Scheme_Hash_Table *toplevels_ht; +static THREAD_LOCAL Scheme_Hash_Table *locals_ht[2]; /* local functions */ static void make_kernel_env(void); diff --git a/src/mzscheme/src/fun.c b/src/mzscheme/src/fun.c index 7e87d5e40d..5a6718b4bc 100644 --- a/src/mzscheme/src/fun.c +++ b/src/mzscheme/src/fun.c @@ -167,13 +167,15 @@ static Scheme_Object *abort_continuation_proc; static Scheme_Object *internal_call_cc_prim; /* CACHES NEED TO BE THREAD LOCAL */ -static Scheme_Prompt *available_prompt, *available_cws_prompt, *available_regular_prompt; -static Scheme_Dynamic_Wind *available_prompt_dw; -static Scheme_Meta_Continuation *available_prompt_mc; -static Scheme_Object *cached_beg_stx; -static Scheme_Object *cached_dv_stx; -static Scheme_Object *cached_ds_stx; -static int cached_stx_phase; +static THREAD_LOCAL Scheme_Prompt *available_prompt; +static THREAD_LOCAL Scheme_Prompt *available_cws_prompt; +static THREAD_LOCAL Scheme_Prompt *available_regular_prompt; +static THREAD_LOCAL Scheme_Dynamic_Wind *available_prompt_dw; +static THREAD_LOCAL Scheme_Meta_Continuation *available_prompt_mc; +static THREAD_LOCAL Scheme_Object *cached_beg_stx; +static THREAD_LOCAL Scheme_Object *cached_dv_stx; +static THREAD_LOCAL Scheme_Object *cached_ds_stx; +static THREAD_LOCAL int cached_stx_phase; /* NEED TO BE THREAD LOCAL */ static Scheme_Cont *offstack_cont; diff --git a/src/mzscheme/src/stxobj.c b/src/mzscheme/src/stxobj.c index 8f6e7f0fb6..41a2e8ee5c 100644 --- a/src/mzscheme/src/stxobj.c +++ b/src/mzscheme/src/stxobj.c @@ -90,7 +90,9 @@ static Scheme_Hash_Table *empty_hash_table; static Scheme_Object *last_phase_shift; -static Scheme_Hash_Table *id_marks_ht, *than_id_marks_ht; +/* caches */ +static THREAD_LOCAL Scheme_Hash_Table *id_marks_ht; +static THREAD_LOCAL Scheme_Hash_Table *than_id_marks_ht; static Scheme_Object *no_nested_inactive_certs; diff --git a/src/mzscheme/src/thread.c b/src/mzscheme/src/thread.c index 66efc09031..419a232bfd 100644 --- a/src/mzscheme/src/thread.c +++ b/src/mzscheme/src/thread.c @@ -173,9 +173,9 @@ THREAD_LOCAL MZ_MARK_STACK_TYPE scheme_current_cont_mark_stack; THREAD_LOCAL MZ_MARK_POS_TYPE scheme_current_cont_mark_pos; #endif -static Scheme_Custodian *main_custodian; -static Scheme_Custodian *last_custodian; -static Scheme_Hash_Table *limited_custodians = NULL; +static THREAD_LOCAL Scheme_Custodian *main_custodian; +static THREAD_LOCAL Scheme_Custodian *last_custodian; +static THREAD_LOCAL Scheme_Hash_Table *limited_custodians = NULL; static Scheme_Object *initial_inspector;