Kurt M. Dresner wrote:

>irb(main):001:0> a = true
>=> true
>irb(main):002:0> fork do
>irb(main):003:1* a = false
>irb(main):004:1> end
>=> 2525
>irb(main):005:0> a
>=> true
>
>
>Why is this so?  What is the point of having my mutexes if I can't
>manipulate the data anyway?
>
>-Kurt
>
>
>  
>
Fork creates a whole new heavy process.  I think you are looking for 
Thread.  Try something like:

Thread.new {
    a = false
}