X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=ext%2Fthreads%2Fthreads.pm;h=dcd2aa015c9a65619b9fa687f4feb3ff04fdde7c;hb=8043fdafce9b64db18484779a548e4f4adefc5ed;hp=6709f633a93629cf77f443a3ec4556d098b4f1e9;hpb=4522225b0b1dd6f5498ad893469cb9b2e20183b7;p=p5sagit%2Fp5-mst-13.2.git diff --git a/ext/threads/threads.pm b/ext/threads/threads.pm index 6709f63..dcd2aa0 100755 --- a/ext/threads/threads.pm +++ b/ext/threads/threads.pm @@ -31,8 +31,6 @@ use overload '==' => \&equal, 'fallback' => 1; -#use threads::Shared; - BEGIN { warn "Warning, threads::shared has already been loaded. ". "To enable shared variables for these modules 'use threads' ". @@ -52,18 +50,15 @@ our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( async ); -our $VERSION = '1.00'; +our $VERSION = '1.05'; -sub equal { - return 1 if($_[0]->tid() == $_[1]->tid()); - return 0; -} +# || 0 to ensure compatibility with previous versions +sub equal { ($_[0]->tid == $_[1]->tid) || 0 } -sub async (&;@) { - my $cref = shift; - return threads->new($cref,@_); -} +# use "goto" trick to avoid pad problems from 5.8.1 (fixed in 5.8.2) +# should also be faster +sub async (&;@) { unshift @_,'threads'; goto &new } sub object { return undef unless @_ > 1; @@ -144,7 +139,8 @@ it the other way around. This will create a new thread with the entry point function and give it LIST as parameters. It will return the corresponding threads -object. The new() method is an alias for create(). +object, or C if thread creation failed. The new() method is an +alias for create(). =item $thread->join @@ -274,7 +270,7 @@ signal handling is not threadsafe. =head1 AUTHOR and COPYRIGHT -Arthur Bergman Earthur at contiller.seE +Arthur Bergman Esky at nanisky.comE threads is released under the same license as Perl.