I'd be glad to see a short summary of what I should be aware of when writing
multithreading apps. I know I shouldn't mix threads with the use of
select(2), but that was greatly explained by matz and others recently. I
also have read about druby requirements for synchronization, so this is
clear. Especially I'd like to know if the regexp related global variables
(and other global vars like $!) are holding a global state that is thread
unsafe. The similar question applies to standard libs - eg. does Kernel#rand
hold an unsafe global state? (I know of scheduled `whrandom' or whatever its
name is, but I consider standard 1.6.8 stuff for now). What else might be
danger, I don't know.. Could you share your experience in this matter?

I still use Ruby 1.6.8, but it'd be nice to know if such inconsistencies (if
any) are going to be changed in 1.8. Btw, what's the hypothetical Ruby
version number for planned rewrite of threads layer using native ones? :)

TIA

-- 
We demand rigidly defined areas of doubt and uncertainty!