[prev in list] [next in list] [prev in thread] [next in thread] 

List:       apache-modperl
Subject:    Re: Perl/mod_perl/DBI: To thread, or not to thread
From:       "Perrin Harkins" <perrin () elem ! com>
Date:       2008-09-12 1:40:10
Message-ID: 66887a3d0809111840k1e5a3a7amb191ab81a4bf5091 () mail ! gmail ! com
[Download RAW message or body]

On Thu, Sep 11, 2008 at 9:07 PM, Patrick Galbraith <patg@patg.net> 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
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic