On Thu, Sep 11, 2008 at 9:07 PM, Patrick Galbraith <[EMAIL PROTECTED]> wrote: > 1. There are issues with using threads - what all are they? > 2. What they should use- prefork or worker? > 3. What is the consensus? > 4. Is there a document available giving the pros and cons? > 5. What is the official state of Perl with regards to threading?
There's a lot of information about this in the mod_perl archives. The gist of it is that XS code is often not threadsafe, although mod_perl itself is and DBI and DBD::mysql appear to be. Pure perl code can also be unsafe for threads, e.g. by using Cwd in any way. This is the reason for ModPerl::RegistryPrefork. I usually advise people to avoid threads unless they're on Win32, because Perl threads tend to use more memory than forking and compiling perl with threads support hurts performance. In particular, if you do use threads, you need to do the exact opposite of the normal mod_perl approach with module loading, i.e. don't load anything in the parent process. You'll find lots more in the archives, and of course there are threads documents included with Perl. - Perrin