threads::async + some cleanup
Elizabeth Mattijsen [Fri, 10 Oct 2003 16:37:55 +0000 (18:37 +0200)]
Message-Id: <p05111b07bbac713a0aaf@[192.168.56.2]>

p4raw-id: //depot/perl@21436

ext/threads/threads.pm

index 6709f63..e3c75c1 100755 (executable)
@@ -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' ".
@@ -55,15 +53,11 @@ async
 our $VERSION = '1.00';
 
 
-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, should also be faster
+sub async (&;@) { unshift @_,'threads'; goto &new }
 
 sub object {
     return undef unless @_ > 1;