diff options
author | dakkar <dakkar@thenautilus.net> | 2010-07-11 22:44:16 +0100 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2010-07-11 22:44:16 +0100 |
commit | 2a1c8d80336a93bdf5b89008917947b4ca912f27 (patch) | |
tree | 773f54cf2066fcbd0684b1872709d35d02f2fda8 /lib/Thread/Task | |
parent | test for TT::Thread->master (diff) | |
download | Thread-Task-2a1c8d80336a93bdf5b89008917947b4ca912f27.tar.gz Thread-Task-2a1c8d80336a93bdf5b89008917947b4ca912f27.tar.bz2 Thread-Task-2a1c8d80336a93bdf5b89008917947b4ca912f27.zip |
test for TT::Handle
Diffstat (limited to 'lib/Thread/Task')
-rw-r--r-- | lib/Thread/Task/Handle.pm | 8 | ||||
-rw-r--r-- | lib/Thread/Task/Manager.pm | 2 | ||||
-rw-r--r-- | lib/Thread/Task/Types.pm | 6 |
3 files changed, 13 insertions, 3 deletions
diff --git a/lib/Thread/Task/Handle.pm b/lib/Thread/Task/Handle.pm index 5dfcd40..5cb2eed 100644 --- a/lib/Thread/Task/Handle.pm +++ b/lib/Thread/Task/Handle.pm @@ -7,6 +7,7 @@ class Thread::Task::Handle { 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; + use MooseX::MultiMethods; require Scalar::Util; @@ -16,7 +17,6 @@ class Thread::Task::Handle { isa => Int, is => 'ro', default => sub { ++$SEQUENCE }, - init_arg => undef, ); has task => ( @@ -32,6 +32,10 @@ class Thread::Task::Handle { init_arg => undef, ); + multi method BUILDARGS(ClassName $class: Task_T $task) { + return $class->next::method({task=>$task}); + } + method prepare() { try { $self->task->prepare; @@ -86,7 +90,7 @@ class Thread::Task::Handle { return $class->new( hid=>$hid, - task=>Thread::Task->from_string($task_serialized), + task=>$task_class->from_string($task_serialized), ); } diff --git a/lib/Thread/Task/Manager.pm b/lib/Thread/Task/Manager.pm index f94aba6..1410799 100644 --- a/lib/Thread/Task/Manager.pm +++ b/lib/Thread/Task/Manager.pm @@ -183,7 +183,7 @@ class Thread::Task::Manager { method on_signal(Str $frozen) { my $message; try { - $message = Storable::nthaw($frozen); + $message = Storable::thaw($frozen); } catch { return; diff --git a/lib/Thread/Task/Types.pm b/lib/Thread/Task/Types.pm index 8a4d044..9ee87ed 100644 --- a/lib/Thread/Task/Types.pm +++ b/lib/Thread/Task/Types.pm @@ -5,15 +5,21 @@ use MooseX::Types Handle_T Worker_T Task_T + TaskRev_T + Manager_T Conduit_T Finished_ET Queue_T Queue_Ev_T )]; +use MooseX::Types::Moose qw(Int); class_type Handle_T, { class => 'Thread::Task::Handle' }; class_type Worker_T, { class => 'Thread::Task::Worker' }; class_type Task_T, { class => 'Thread::Task' }; +class_type Manager_T, { class => 'Thread::Task::Manager' }; + +subtype TaskRev_T, as Int; role_type Conduit_T, { role => 'Thread::Task::Role::Conduit' }; |