]> git.vpit.fr Git - perl/modules/Scope-Upper.git/commitdiff
Introduce SU_THREADSAFE
authorVincent Pit <vince@profvince.com>
Sat, 2 May 2009 14:49:17 +0000 (16:49 +0200)
committerVincent Pit <vince@profvince.com>
Sat, 2 May 2009 14:49:17 +0000 (16:49 +0200)
Upper.xs
lib/Scope/Upper.pm
t/01-import.t

index 5e8e8e396302ee3ebf951f08f50927765c0c1247..95a22ed74520b2f521fc871b075b60b7ba4489e5 100644 (file)
--- a/Upper.xs
+++ b/Upper.xs
@@ -720,7 +720,8 @@ BOOT:
  HV *stash;
  MY_CXT_INIT;
  stash = gv_stashpv(__PACKAGE__, 1);
- newCONSTSUB(stash, "TOP", newSViv(0));
+ newCONSTSUB(stash, "TOP",           newSViv(0));
+ newCONSTSUB(stash, "SU_THREADSAFE", newSVuv(SU_THREADSAFE));
  newXSproto("Scope::Upper::unwind", XS_Scope__Upper_unwind, file, NULL);
 }
 
index 104674dae43167fb3afd32fda5f2b9f04a2db6c7..1d6b4d11a70a002d5396f4d3999df902ae9275c0 100644 (file)
@@ -211,6 +211,12 @@ The previous example can then be "corrected" :
 
 will righteously set C<$num> to C<26>.
 
+=head1 CONSTANTS
+
+=head2 C<SU_THREADSAFE>
+
+True iff the module could have been built when thread-safety features.
+
 =head1 WORDS
 
 =head2 Constants
@@ -318,6 +324,8 @@ Where L</unwind> and L</want_at> point to depending on the C<$cxt>:
 
 The functions L</reap>, L</localize>, L</localize_elem>, L</localize_delete>,  L</unwind> and L</want_at> are only exported on request, either individually or by the tags C<':funcs'> and C<':all'>.
 
+The constant L</SU_THREADSAFE> is also only exported on request, individually or by the tags C<':consts'> and C<':all'>.
+
 Same goes for the words L</TOP>, L</HERE>, L</UP>, L</SUB>, L</EVAL>, L</SCOPE> and L</CALLER> that are only exported on request, individually or by the tags C<':words'> and C<':all'>.
 
 =cut
@@ -326,8 +334,9 @@ use base qw/Exporter/;
 
 our @EXPORT      = ();
 our %EXPORT_TAGS = (
- funcs => [ qw/reap localize localize_elem localize_delete unwind want_at/ ],
- words => [ qw/TOP HERE UP SUB EVAL SCOPE CALLER/ ],
+ funcs  => [ qw/reap localize localize_elem localize_delete unwind want_at/ ],
+ words  => [ qw/TOP HERE UP SUB EVAL SCOPE CALLER/ ],
+ consts => [ qw/SU_THREADSAFE/ ],
 );
 our @EXPORT_OK   = map { @$_ } values %EXPORT_TAGS;
 $EXPORT_TAGS{'all'} = [ @EXPORT_OK ];
index a0134bb818be80889db78a6c9fb5c8932daadbaf..da61bbc9d57789ee9e27544add8ea8b27572a6f6 100644 (file)
@@ -3,11 +3,13 @@
 use strict;
 use warnings;
 
-use Test::More tests => 13;
+use Test::More tests => 14;
 
 require Scope::Upper;
 
-for (qw/reap localize localize_elem localize_delete unwind want_at TOP HERE UP SUB EVAL SCOPE CALLER/) {
+for (qw/reap localize localize_elem localize_delete unwind want_at
+        TOP HERE UP SUB EVAL SCOPE CALLER
+        SU_THREADSAFE/) {
  eval { Scope::Upper->import($_) };
  is($@, '', 'import ' . $_);
 }