summaryrefslogtreecommitdiff
path: root/lib/Thread/Task/Worker.pm
diff options
context:
space:
mode:
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;