From: Vincent Pit Date: Thu, 27 Aug 2009 22:21:56 +0000 (+0200) Subject: I_THREADSAFE ought to be true when PERL_INDIRECT_PM_DISABLE is set X-Git-Tag: v0.19~7 X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Findirect.git;a=commitdiff_plain;h=472dba145dd39b08abd25fbb0b1b9fc8697b6575;ds=sidebyside I_THREADSAFE ought to be true when PERL_INDIRECT_PM_DISABLE is set --- diff --git a/lib/indirect.pm b/lib/indirect.pm index edfe093..7c2bab1 100644 --- a/lib/indirect.pm +++ b/lib/indirect.pm @@ -60,6 +60,7 @@ This module is B 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 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 will be true. This is useful for disabling C in production environments. Note that clearing this variable after C was loaded has no effect.