variables are per default thread local. To use shared variables one
must use threads::shared.
-It is also important to note that you must enable threads by
-doing C<use threads> as early as possible and that it is not possible
-to enable threading inside an eval ""; In particular, if you are
-intending to share variables with threads::shared, you must
-C<use threads> before you C<use threads::shared> and threads will emit
-a warning if you do it the other way around.
+It is also important to note that you must enable threads by doing
+C<use threads> as early as possible in the script itself and that it
+is not possible to enable threading inside an C<eval "">, C<do>,
+C<require>, or C<use>. In particular, if you are intending to share
+variables with threads::shared, you must C<use threads> before you
+C<use threads::shared> and C<threads> will emit a warning if you do
+it the other way around.
=over
=back
-=head1 BUGS / TODO
+=head1 TODO
The current implementation of threads has been an attempt to get
a correct threading system working that could be built on,
were there most likely will be work done to optimize what data
that needs to be cloned.
+=head1 BUGS
+
=over
=item Parent-Child threads.
On some platforms it might not be possible to destroy "parent"
threads while there are still existing child "threads".
-This will be possibly be fixed in later versions of perl.
-
+This will possibly be fixed in later versions of perl.
+
=item tid is I32
The thread id is a 32 bit integer, it can potentially overflow.
as well. This will lead to a large memory usage. The ideal situation
would be to detect the original stash if it existed.
+=item Creating threads inside BEGIN blocks
+
+Creating threads inside BEGIN blocks (or during the compilation phase
+in general) does not work. (In Windows, trying to use fork() inside
+BEGIN blocks is an equally losing proposition, since it has been
+implemented in very much the same way as threads.)
+
=item PERL_OLD_SIGNALS are not threadsafe, will not be.
+If your Perl has been built with PERL_OLD_SIGNALS (one has
+to explicitly add that symbol to ccflags, see C<perl -V>),
+signal handling is not threadsafe.
+
=back
=head1 AUTHOR and COPYRIGHT