I_THREADSAFE ought to be true when PERL_INDIRECT_PM_DISABLE is set
authorVincent Pit <vince@profvince.com>
Thu, 27 Aug 2009 22:21:56 +0000 (00:21 +0200)
committerVincent Pit <vince@profvince.com>
Thu, 27 Aug 2009 22:33:07 +0000 (00:33 +0200)
lib/indirect.pm

index edfe093..7c2bab1 100644 (file)
@@ -60,6 +60,7 @@ This module is B<not> a source filter.
 BEGIN {
  if ($ENV{PERL_INDIRECT_PM_DISABLE}) {
   *_tag = sub ($) { 1 };
+  *I_THREADSAFE = sub () { 1 };
  } else {
   require XSLoader;
   XSLoader::load(__PACKAGE__, $VERSION);
@@ -162,6 +163,7 @@ The default warning/exception message thrown when an indirect call on a block is
 =head2 C<PERL_INDIRECT_PM_DISABLE>
 
 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 C<'indirect'> lexical hint will be set to true in the scope of use, the pragma itself won't do anything.
+In this case, the pragma will always be considered to be thread-safe, and as such L</I_THREADSAFE> will be true.
 This is useful for disabling C<indirect> in production environments.
 
 Note that clearing this variable after C<indirect> was loaded has no effect.