c_inp_stream and friends are thread private!

This commit is contained in:
Vítor Santos Costa
2010-07-27 17:28:58 +01:00
parent 4c9d74c2e7
commit 18d77309a6
9 changed files with 25 additions and 8 deletions

View File

@@ -165,8 +165,6 @@ int Yap_CritLocks = 0;
/********* streams ********************************************/
int Yap_c_input_stream, Yap_c_output_stream, Yap_c_error_stream;
YP_FILE *Yap_stdin;
YP_FILE *Yap_stdout;
YP_FILE *Yap_stderr;

View File

@@ -81,6 +81,9 @@ store_specs(int new_worker_id, UInt ssize, UInt tsize, UInt sysize, Term *tpgoal
FOREIGN_ThreadHandle(new_worker_id).ssize = ssize;
FOREIGN_ThreadHandle(new_worker_id).tsize = tsize;
FOREIGN_ThreadHandle(new_worker_id).sysize = sysize;
FOREIGN_WL(new_worker_id)->c_input_stream = Yap_c_input_stream;
FOREIGN_WL(new_worker_id)->c_output_stream = Yap_c_output_stream;
FOREIGN_WL(new_worker_id)->c_error_stream = Yap_c_error_stream;
pm = (ssize + tsize)*1024;
if (!(FOREIGN_ThreadHandle(new_worker_id).stack_address = malloc(pm))) {
return FALSE;