Paul Brannan wrote:
>> While a thread is requiring a given file, another thread which
>> requires the same file will be blocked until the former thread
>> finishes loading, and the result will be false.
> 
> As Charlie pointed out, this behavior can cause a deadlock:

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*.

Moral of the story: don't require the same file across threads.

- Charlie