From 6a4bae10d0f6a73ae291dfd26d5b20eb036e43b4 Mon Sep 17 00:00:00 2001 From: Kevin Tew Date: Wed, 30 Dec 2009 21:47:18 +0000 Subject: [PATCH] Remove lazy initialization of dummy_io_ports, prone to race conditions svn: r17442 --- src/mzscheme/src/portfun.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/mzscheme/src/portfun.c b/src/mzscheme/src/portfun.c index 45cb8a3283..26eeb639cc 100644 --- a/src/mzscheme/src/portfun.c +++ b/src/mzscheme/src/portfun.c @@ -209,6 +209,12 @@ scheme_init_port_fun(Scheme_Env *env) default_write_handler = scheme_make_prim_w_arity(sch_default_write_handler, "default-port-write-handler", 2, 2); default_print_handler = scheme_make_prim_w_arity(sch_default_print_handler, "default-port-print-handler", 2, 2); + /* Use dummy port: */ + REGISTER_SO(dummy_input_port); + REGISTER_SO(dummy_output_port); + dummy_input_port = scheme_make_byte_string_input_port(""); + dummy_output_port = scheme_make_null_output_port(1); + scheme_init_port_fun_config(); scheme_add_global_constant("eof", scheme_eof, env); @@ -369,11 +375,6 @@ static MZ_INLINE Scheme_Input_Port *input_port_record_slow(Scheme_Object *port) return (Scheme_Input_Port *)port; if (!SCHEME_STRUCTP(port)) { - /* Use dummy port: */ - if (!dummy_input_port) { - REGISTER_SO(dummy_input_port); - dummy_input_port = scheme_make_byte_string_input_port(""); - } return (Scheme_Input_Port *)dummy_input_port; } @@ -406,11 +407,6 @@ static MZ_INLINE Scheme_Output_Port *output_port_record_slow(Scheme_Object *port return (Scheme_Output_Port *)port; if (!SCHEME_STRUCTP(port)) { - /* Use dummy port: */ - if (!dummy_output_port) { - REGISTER_SO(dummy_output_port); - dummy_output_port = scheme_make_null_output_port(1); - } return (Scheme_Output_Port *)dummy_output_port; }