In message "[ruby-talk:5044] Strange ruby 1.6.0/cygwin1.1/Nt4 behavior/bug"
    on 00/09/21, Robert Feldt <feldt / ce.chalmers.se> writes:

|So I figured I'd go install 1.6.0 final. I've previously been running the
|preview (000904) successfully. After installing the latest cygwin
|and the 000919 ruby tarball I get mysterious hangs when I require *some*
|extensions or packages. For example with RubyUnit 0.2.5:

fetch the latest from CVS or apply the following patch, please.

							matz.

--- /tmp/ruby-1.6.0/eval.c	Tue Sep 19 01:28:34 2000
+++ eval.c	Wed Sep 20 13:54:17 2000
@@ -3485,3 +3485,3 @@
 	struct RVarmap *vars = ruby_dyna_vars;
-	
+
 	while (vars && vars->id != 0) {
@@ -5045,3 +5045,5 @@
 	    }
-	    goto load_wait;
+	    if (strcmp(f+len, ".rb") == 0) {
+		goto load_wait;
+	    }
 	}
@@ -5868,2 +5870,3 @@
     for (vars = data->d_vars; vars; vars = vars->next) {
+	if (FL_TEST(vars, DVAR_DONT_RECYCLE)) break;
 	FL_SET(vars, DVAR_DONT_RECYCLE);
@@ -5949,2 +5952,3 @@
     for (vars = data->d_vars; vars; vars = vars->next) {
+	if (FL_TEST(vars, DVAR_DONT_RECYCLE)) break;
 	FL_SET(vars, DVAR_DONT_RECYCLE);
@@ -7639,2 +7643,3 @@
     rb_thread_t th;
+    struct RVarmap *vars;
 
@@ -7656,2 +7661,6 @@
 
+    for (vars = ruby_dyna_vars; vars; vars = vars->next) {
+	if (FL_TEST(vars, DVAR_DONT_RECYCLE)) break;
+	FL_SET(vars, DVAR_DONT_RECYCLE);
+    }
     return th;
@@ -8142,2 +8151,3 @@
     struct tag *tag;
+    struct RVarmap *vars;
 
@@ -8153,2 +8163,8 @@
     th->thread = curr_thread->thread;
+
+    for (vars = ruby_dyna_vars; vars; vars = vars->next) {
+	if (FL_TEST(vars, DVAR_DONT_RECYCLE)) break;
+	FL_SET(vars, DVAR_DONT_RECYCLE);
+    }
+
     if (THREAD_SAVE_CONTEXT(th)) {