summaryrefslogtreecommitdiff
path: root/ext/threads
diff options
context:
space:
mode:
Diffstat (limited to 'ext/threads')
-rwxr-xr-xext/threads/threads.pm7
-rwxr-xr-xext/threads/threads.xs18
2 files changed, 19 insertions, 6 deletions
diff --git a/ext/threads/threads.pm b/ext/threads/threads.pm
index b708de4461..506b2471c7 100755
--- a/ext/threads/threads.pm
+++ b/ext/threads/threads.pm
@@ -24,18 +24,13 @@ our @EXPORT = qw(
);
our $VERSION = '0.05';
-sub new {
- my $class = shift;
- return $class->create(@_);
-}
-
sub equals {
return 1 if($_[0]->tid() == $_[1]->tid());
return 0;
}
-$Config::threads = 1;
+$threads::threads = 1;
bootstrap threads $VERSION;
diff --git a/ext/threads/threads.xs b/ext/threads/threads.xs
index 56c046d0c2..a4e22ec966 100755
--- a/ext/threads/threads.xs
+++ b/ext/threads/threads.xs
@@ -332,6 +332,24 @@ create (class, function_to_call, ...)
RETVAL
SV *
+new (class, function_to_call, ...)
+ char * class
+ SV * function_to_call
+ CODE:
+ AV* params = newAV();
+ if(items > 2) {
+ int i;
+ for(i = 2; i < items ; i++) {
+ av_push(params, ST(i));
+ }
+ }
+ RETVAL = Perl_thread_create(class, function_to_call, newRV_noinc((SV*) params));
+ OUTPUT:
+ RETVAL
+
+
+
+SV *
self (class)
char* class
CODE: