On Wed, Nov 12, 2008 at 04:06:00AM +0900, Charles Oliver Nutter wrote:
> I've given this a lot of thought, and I'm just about positive the best  
> you can do is return immediately if another thread has *started*  
> requiring a given file. There's no safe way to ensure it has  
> *completed*. Ultimately I think the more important guarantee is that  
> require cause a file to start loading *exactly once*.

Wouldn't this also break code?

  require 'foo' # returns immediately since foo.rb is being loaded in
                # another thread
  f = Foo.new   # Fails, since class Foo is defined in foo.rb

Paul