diff options
author | dakkar <dakkar@thenautilus.net> | 2010-07-11 21:01:28 +0100 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2010-07-11 21:01:28 +0100 |
commit | c2d0c48a19f33c5145350c52d115c4b8b17a8a54 (patch) | |
tree | 71cee3f517e00080daff115921c247f65929bf0c /lib/Thread/Task | |
parent | start (diff) | |
download | Thread-Task-c2d0c48a19f33c5145350c52d115c4b8b17a8a54.tar.gz Thread-Task-c2d0c48a19f33c5145350c52d115c4b8b17a8a54.tar.bz2 Thread-Task-c2d0c48a19f33c5145350c52d115c4b8b17a8a54.zip |
now it compiles
Diffstat (limited to 'lib/Thread/Task')
-rw-r--r-- | lib/Thread/Task/Handle.pm | 20 | ||||
-rw-r--r-- | lib/Thread/Task/Manager.pm | 2 | ||||
-rw-r--r-- | lib/Thread/Task/Role/Task.pm | 10 | ||||
-rw-r--r-- | lib/Thread/Task/Thread.pm | 10 |
4 files changed, 23 insertions, 19 deletions
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; } |