summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2010-07-11 21:01:28 +0100
committerdakkar <dakkar@thenautilus.net>2010-07-11 21:01:28 +0100
commitc2d0c48a19f33c5145350c52d115c4b8b17a8a54 (patch)
tree71cee3f517e00080daff115921c247f65929bf0c
parentstart (diff)
downloadThread-Task-c2d0c48a19f33c5145350c52d115c4b8b17a8a54.tar.gz
Thread-Task-c2d0c48a19f33c5145350c52d115c4b8b17a8a54.tar.bz2
Thread-Task-c2d0c48a19f33c5145350c52d115c4b8b17a8a54.zip
now it compiles
-rw-r--r--.gitignore2
-rw-r--r--Makefile.PL4
-rw-r--r--lib/Thread/Task.pm8
-rw-r--r--lib/Thread/Task/Handle.pm20
-rw-r--r--lib/Thread/Task/Manager.pm2
-rw-r--r--lib/Thread/Task/Role/Task.pm10
-rw-r--r--lib/Thread/Task/Thread.pm10
7 files changed, 31 insertions, 25 deletions
diff --git a/.gitignore b/.gitignore
index 6a3638d..1d29729 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,7 @@
/Makefile
/Makefile.old
+/META.yml
+/MANIFEST
/blib/
/pm_to_blib
/inc/
diff --git a/Makefile.PL b/Makefile.PL
index 2086bd5..4e38e2e 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -1,4 +1,4 @@
-use inc:Module::Install;
+use inc::Module::Install;
use strict;
use warnings;
@@ -6,13 +6,13 @@ name 'Thread-Task';
license 'perl';
author 'Gianni Ceccarelli <dakkar@thenautilus.net>';
requires 'perl' => '5.008003';
+version '0.001';
requires 'Moose' => '1.00';
requires 'MooseX::Types' => '0.22';
requires 'MooseX::Types::Structured' => '0.23';
requires 'threads' => '1.71';
requires 'threads::shared' => '1.26';
-requires 'Thread::Queue::Event' => 0;
requires 'namespace::autoclean' => 0;
requires 'MooseX::Declare' => '0.33';
requires 'MooseX::Singleton' => '0.22';
diff --git a/lib/Thread/Task.pm b/lib/Thread/Task.pm
index 9966634..35976c6 100644
--- a/lib/Thread/Task.pm
+++ b/lib/Thread/Task.pm
@@ -2,8 +2,8 @@ use 5.008003;
use MooseX::Declare;
class Thread::Task {
- use MooseX::Types::Moose qw(Object);
- use Thread::Task::Types qw(Handle_T);
+ use MooseX::Types::Moose qw(ClassName Str Int);
+ use Thread::Task::Types qw(Handle_T Task_T);
require Storable;
@@ -36,7 +36,7 @@ class Thread::Task {
clearer => 'clear_handle',
);
- around BUILDARGS (Class $class,@rest) {
+ around BUILDARGS(ClassName $class: @rest) {
my $params = $class->$orig(@rest);
if (exists $params->{owner}) {
@@ -90,7 +90,7 @@ class Thread::Task {
Storable::nfreeze($self);
}
- method from_string(Class $class: Str $serialization) {
+ method from_string(ClassName $class: Str $serialization) {
my $self=Storable::nthaw($serialization);
my $self_class=$self->meta->name;
unless ($self_class eq $class) {
diff --git a/lib/Thread/Task/Handle.pm b/lib/Thread/Task/Handle.pm
index b7012f4..5dfcd40 100644
--- a/lib/Thread/Task/Handle.pm
+++ b/lib/Thread/Task/Handle.pm
@@ -4,7 +4,7 @@ use MooseX::Declare;
class Thread::Task::Handle {
use TryCatch;
- use MooseX::Types::Moose qw(Object Bool Int);
+ use MooseX::Types::Moose qw(ClassName Int ArrayRef);
use Thread::Task::Types qw(Handle_T Worker_T Task_T Finished_ET);
use Thread::Task::Exception::Finished;
@@ -36,8 +36,8 @@ class Thread::Task::Handle {
try {
$self->task->prepare;
}
- catch (Finished_ET) {
- die $@;
+ catch (Finished_ET $e) {
+ die $e;
}
catch {
die Thread::Task::Exception::Finished->new(msg=>$@);
@@ -48,8 +48,8 @@ class Thread::Task::Handle {
try {
$self->task->finish;
}
- catch (Finished_ET) {
- die $@;
+ catch (Finished_ET $e) {
+ die $e;
}
catch {
die Thread::Task::Exception::Finished->new(msg=>$@);
@@ -62,7 +62,7 @@ class Thread::Task::Handle {
$self->task->run;
$self->task->clear_handle;
}
- catch (Finished_ET) {
+ catch (Finished_ET $e) {
}
catch ($e) {
$self->task->clear_handle;
@@ -76,11 +76,11 @@ class Thread::Task::Handle {
return [
$self->hid,
$self->task->meta->name,
- $task->as_string,
+ $self->task->as_string,
];
}
- method from_array(Class $class: ArrayRef $array) {
+ method from_array(ClassName $class: ArrayRef $array) {
my ($hid,$task_class,$task_serialized)=@$array;
Class::MOP::load_class($task_class);
@@ -96,7 +96,7 @@ class Thread::Task::Handle {
);
}
- method on_message($method,@args) {
+ method on_message(Str $method, @args) {
unless ($self->task->can($method)) {
return;
}
@@ -118,7 +118,7 @@ class Thread::Task::Handle {
$self->message('__STOPPED__');
}
- method on_stopped(Task_T $new_task) {
+ method on_stopped(Task_T $new_task, @args) {
$self->task->_update($new_task);
try {
diff --git a/lib/Thread/Task/Manager.pm b/lib/Thread/Task/Manager.pm
index e969edc..f94aba6 100644
--- a/lib/Thread/Task/Manager.pm
+++ b/lib/Thread/Task/Manager.pm
@@ -4,7 +4,7 @@ use MooseX::Declare;
class Thread::Task::Manager {
use TryCatch;
- use MooseX::Types::Moose qw(Object Bool Int);
+ use MooseX::Types::Moose qw(Object Bool Int ArrayRef HashRef);
use Thread::Task::Types qw(Handle_T Worker_T Task_T Conduit_T Finished_ET);
use MooseX::Singleton;
diff --git a/lib/Thread/Task/Role/Task.pm b/lib/Thread/Task/Role/Task.pm
index 61f9cbe..f7b3ccc 100644
--- a/lib/Thread/Task/Role/Task.pm
+++ b/lib/Thread/Task/Role/Task.pm
@@ -3,10 +3,11 @@ use MooseX::Declare;
role Thread::Task::Role::Task {
use MooseX::Types::Moose qw(Int);
+ use Thread::Task::Types qw(Task_T);
require Scalar::Util;
my $SEQUENCE = 0;
- my %INDEX = 0;
+ my %INDEX = ();
has task_revision => (
isa => Int,
@@ -36,11 +37,14 @@ role Thread::Task::Role::Task {
return $INDEX{$task_rev};
}
- method task_request(:$task, %params) {
+ method task_request(%params) {
+ my $task = delete $params{task}
+ or die 'No task class passed';
+
Class::MOP::load_class($task);
$task->isa('Thread::Task')
or die "Bad class $task, not a Thread::Task";
- $class->new(owner=>$self,%params)->schedule;
+ $task->new(owner=>$self,%params)->schedule;
}
method task_response(Task_T $task) {
diff --git a/lib/Thread/Task/Thread.pm b/lib/Thread/Task/Thread.pm
index 401992a..d3fa27a 100644
--- a/lib/Thread/Task/Thread.pm
+++ b/lib/Thread/Task/Thread.pm
@@ -5,7 +5,7 @@ class Thread::Task::Thread {
use threads;
use threads::shared;
- use MooseX::Types::Moose qw(Int);
+ use MooseX::Types::Moose qw(ClassName Int);
use Thread::Task::Types qw(Handle_T Worker_T Task_T Finished_ET
Queue_T);
@@ -19,12 +19,12 @@ class Thread::Task::Thread {
my $SINGLETON;
- method master(Class $class:) {
+ method master(ClassName $class:) {
$SINGLETON
or $class->new->spawn;
}
- method import(Class $class: @rest) {
+ method import(ClassName $class: @rest) {
if (@rest && defined $rest[0] && $rest[0] eq ':master') {
$class->master;
}
@@ -110,14 +110,14 @@ class Thread::Task::Thread {
try {
$self->$method(@$method);
}
- catch (Finished_ET) {
+ catch (Finished_ET $e) {
last;
}
}
return;
}
- method start_child(Thread_T $thread) {
+ method start_child($thread) {
$thread->spawn;
return;
}