X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Findirect.git;a=blobdiff_plain;f=lib%2Findirect.pm;h=34920db30092002a79bbf1a6b8282c91b0f8612d;hp=edfe0933fe64c9ecabdde502a96b4d3aa0246e05;hb=2635de8af7a889878b35ebed184d2f7b3c9c4ac0;hpb=75cf45cd438ca888114977c6917a11e7364402f3 diff --git a/lib/indirect.pm b/lib/indirect.pm index edfe093..34920db 100644 --- a/lib/indirect.pm +++ b/lib/indirect.pm @@ -60,6 +60,8 @@ This module is B a source filter. BEGIN { if ($ENV{PERL_INDIRECT_PM_DISABLE}) { *_tag = sub ($) { 1 }; + *I_THREADSAFE = sub () { 1 }; + *I_FORKSAFE = sub () { 1 }; } else { require XSLoader; XSLoader::load(__PACKAGE__, $VERSION); @@ -147,6 +149,11 @@ sub msg { True iff the module could have been built with thread-safety features enabled. +=head2 C + +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 . + =head1 DIAGNOSTICS =head2 C @@ -162,6 +169,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.