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!