Ara.T.Howard wrote:
> On Wed, 25 Feb 2004, Ara.T.Howard wrote:
> 
> forgot to mention that i have $VERBOSE=nil so i don't see the
> 
>   "...fork terminates thread..."
> 
> err msg.  i assume that, in this case (forking done in open3) it is OK if that
> thread is terminated in the child - it obviously seem to continue running in
> the parent...

I've never seen forking have an adverse effect on threads in the parent. 
But there is a case where terminating all but one thread, which is what 
happens in the child, has an adverse effect.

   require 'thread'

   m = Mutex.new

   Thread.new { m.synchronize { sleep 1 } }

   fork do
     m.synchronize { puts "Didn't get here." }
   end

   m.synchronize { puts "Got here." }

   Process.wait

This outputs the warning you saw and "Got here.".

I've gotten around this by explicitly removing the dead threads that 
hold a mutex or are waiting for it. (Code available, if anyone's 
interested.)

But that doesn't look like your problem, since the child is firing up a 
whole new ruby.