I have even used that technique before. I'm dumb. So, something like  
this would probably work for the type of abstraction I'm thinking of  
(too lazy for an irb test).

def safe_block(mode)
   t = Thread.new do
     @SAFE = mode
     yield
   end
   t.value
end

- Jake McArthur

On Apr 25, 2006, at 5:36 PM, ara.t.howard / noaa.gov wrote:

> you have
>
>   fork {
>     $SAFE = 4
>     ...
>   }
>   Process.wait
>
> and also
>
>   t = Thread.new{
>     $SAFE = 4
>     ...
>   }
>   t.value
>
> fyi.