> > From the code below, it appears that $! is thread safe.
> >
> > Is it?
>
> Yes, according to Pickaxe v2, p.319 (the "[thread]" is what
> signifies this):
>
>  Exception Information
>  $!   Exception       The exception object passed to raise. [thread]

Page 319 of Pickaxe v2 doesn't tell me anything about
exceptions or global variables. But I found the same text on
page 334. (It's not easy to search in a printed book... :})

Page 108 of the same book (at least of _my_ instance) says
"Ruby places a reference to the associated Exception object
into the global variables $!."

I suppose "global" in this sentence means "context of current
thread" instead of "context of current program". It was a bit
confusing to me...

Thanks!

gegroet,
Erik V. - http://www.erikveen.dds.nl/