Revision history for indirect
+0.19 2009-08-28 18:40 UTC
+ + Add : The new constant I_FORKSAFE can be tested to know whether the
+ module will behave nicely when fork()ing. It's currently always
+ true except on Windows where you need perl 5.10.1 for it to be
+ true.
+ + Fix : I_THREADSAFE and I_FORKSAFE ought to be true when
+ PERL_INDIRECT_PM_DISABLE is set.
+ + Fix : The pragma could still leak if you passed to the "hook" option
+ a reference to the same (named) subroutine from two different
+ require scopes. The fix also provides a better solution for
+ RT #47902.
+ + Fix : Segfaults when indirect is loaded for the first time from
+ inside a thread.
+ + Fix : Leaks of memory associated with the root interpreter.
+ + Opt : Less memory will be used for non-threaded perls version 5.10.0
+ and below, and for threaded perls from version 5.10.1.
+
0.18 2009-08-23 16:15 UTC
+ Add : When set, the PERL_INDIRECT_PM_DISABLE environment variable
disables the pragma globally.
indirect - Lexically warn about using the indirect object syntax.
VERSION
- Version 0.18
+ Version 0.19
SYNOPSIS
# In a script
True iff the module could have been built with thread-safety features
enabled.
+ "I_FORKSAFE"
+ True iff this module could have been built with fork-safety features
+ enabled. This will always be true except on Windows where it's false for
+ perl 5.10.0 and below .
+
DIAGNOSTICS
"Indirect call of method "%s" on object "%s" at %s line %d."
The default warning/exception message thrown when an indirect call on an
If this environment variable is set to true when the pragma is used for
the first time, the XS code won't be loaded and, although the 'indirect'
lexical hint will be set to true in the scope of use, the pragma itself
- won't do anything. This is useful for disabling "indirect" in production
- environments.
+ won't do anything. In this case, the pragma will always be considered to
+ be thread-safe, and as such "I_THREADSAFE" will be true. This is useful
+ for disabling "indirect" in production environments.
Note that clearing this variable after "indirect" was loaded has no
effect. If you want to reenable the pragma later, you also need to