|
The addition of threads has
changed Perl's internals substantially. There are
implications for people who write modules -
especially modules with XS code or external
libraries. While most modules won't encounter any
problems, modules that aren't explicitly tagged as
thread-safe should be tested before being used in
production code.
Not all modules that you
might use are thread-safe, and you should always
assume a module is unsafe unless the documentation
says otherwise. This includes modules that are
distributed as part of the core. Threads are a beta
feature, and even some of the standard modules aren't
thread-safe.
If you're using a module
that's not thread-safe for some reason, you can
protect yourself by using semaphores and lots of
programming discipline to control access to the
module. Semaphores are covered in the article.
|