>>>>> "D" == Dave Thomas <Dave / PragmaticProgrammer.com> writes: D> OK, but does that mean we need explicitly to detect require D> loops? Assuming the $" behavior works (or can be made to work), is the D> reason for the test simply to detect potential bad style in the D> programs being loaded, or is there something deeper here? I don't know, actually ruby must wait in some cases for example a = Thread.start do require 'tt' Tt.new end b = Thread.start do require 'tt' Tt.new end a.join b.join and the test for the detection is just : if (th == curr_thread) { rb_raise(rb_eLoadError, "infinite load loop -- %s", f); } Guy Decoux