Joshua Gatcomb <[EMAIL PROTECTED]> wrote:
[ Cygwin thread tests don't print all ]
Does this patch help? It creates shared IO resources. But its of course
not final: there are no precautions against one thread changing the PIO
of another thread or such, no locks yet, nothing.
leo
--- parrot/src/inter_create.c Fri Oct 1 15:26:26 2004
+++ parrot-leo/src/inter_create.c Sat Oct 2 12:06:10 2004
@@ -31,6 +31,12 @@
#define ATEXIT_DESTROY
/*
+ * experimental: use shared IO resources for threads
+ */
+
+#define PARROT_SHARED_IO 1
+
+/*
=item C<static int is_env_var_set(const char* var)>
@@ -125,7 +131,15 @@
/* PANIC will fail until this is done */
SET_NULL(interpreter->piodata);
+#if PARROT_SHARED_IO
+ if (parent) {
+ interpreter->piodata = parent->piodata;
+ }
+ else
+ PIO_init(interpreter);
+#else
PIO_init(interpreter);
+#endif
if (is_env_var_set("PARROT_GC_DEBUG")) {
#if ! DISABLE_GC_DEBUG
@@ -225,6 +239,9 @@
setup_default_compreg(interpreter);
/* setup stdio PMCs */
+#if PARROT_SHARED_IO
+ if (!parent)
+#endif
PIO_init(interpreter);
/* Done. Return and be done with it */
@@ -330,6 +347,9 @@
*/
/* Now the PIOData gets also cleared */
+#if PARROT_SHARED_IO
+ if (!interpreter->parent_interpreter)
+#endif
PIO_finish(interpreter);
/*