summaryrefslogtreecommitdiff
path: root/lib/Thread/Task/Worker.pm
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2010-07-11 20:34:02 +0100
committerdakkar <dakkar@thenautilus.net>2010-07-11 20:34:02 +0100
commit6fc388b833ec0e924f663c11089b5c2b373ccf15 (patch)
treec9e2956ad06c7ef0d8b9e888e36fd88222da056d /lib/Thread/Task/Worker.pm
downloadThread-Task-6fc388b833ec0e924f663c11089b5c2b373ccf15.tar.gz
Thread-Task-6fc388b833ec0e924f663c11089b5c2b373ccf15.tar.bz2
Thread-Task-6fc388b833ec0e924f663c11089b5c2b373ccf15.zip
start
Diffstat (limited to 'lib/Thread/Task/Worker.pm')
-rw-r--r--lib/Thread/Task/Worker.pm36
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/Thread/Task/Worker.pm b/lib/Thread/Task/Worker.pm
new file mode 100644
index 0000000..f0ec3e6
--- /dev/null
+++ b/lib/Thread/Task/Worker.pm
@@ -0,0 +1,36 @@
+use 5.008003;
+use MooseX::Declare;
+
+class Thread::Task::Worker extends Thread::Task::Thread {
+ use TryCatch;
+
+ use MooseX::Types::Moose qw(Object Bool Int ArrayRef);
+ use Thread::Task::Types qw(Handle_T Worker_T Task_T Conduit_T Finished_ET);
+
+ has hid => (
+ isa => Int,
+ is => 'rw',
+ predicate => 'has_hid',
+ clearer => 'clear_hid',
+ required => 0,
+ );
+
+ method task(ArrayRef $task_array) {
+ require Thread::Task::Handle;
+
+ my $handle = Thread::Task::Handle->from_array($task_array);
+
+ try {
+ $handle->started;
+ $handle->run;
+ $handle->stopped;
+ }
+ catch {
+ # trace
+ }
+ return;
+ }
+
+}
+
+1;