Remove lazy initialization of dummy_io_ports, prone to race conditions
svn: r17442
This commit is contained in:
parent
019a8601e7
commit
6a4bae10d0
|
@ -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_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);
|
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_init_port_fun_config();
|
||||||
|
|
||||||
scheme_add_global_constant("eof", scheme_eof, env);
|
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;
|
return (Scheme_Input_Port *)port;
|
||||||
|
|
||||||
if (!SCHEME_STRUCTP(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;
|
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;
|
return (Scheme_Output_Port *)port;
|
||||||
|
|
||||||
if (!SCHEME_STRUCTP(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;
|
return (Scheme_Output_Port *)dummy_output_port;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user