summaryrefslogtreecommitdiff
path: root/t/lib/Test/Conduit.pm
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2010-07-12 21:50:31 +0100
committerdakkar <dakkar@thenautilus.net>2010-07-12 21:50:31 +0100
commit0581dbd91216c18ded2812ec9f3527c0a889da76 (patch)
tree37140af2843431af4e181911529a9922c24e8083 /t/lib/Test/Conduit.pm
parenttest for TT::Handle (diff)
downloadThread-Task-0581dbd91216c18ded2812ec9f3527c0a889da76.tar.gz
Thread-Task-0581dbd91216c18ded2812ec9f3527c0a889da76.tar.bz2
Thread-Task-0581dbd91216c18ded2812ec9f3527c0a889da76.zip
test for TT::Manager & signalingHEADmaster
Diffstat (limited to 't/lib/Test/Conduit.pm')
-rw-r--r--t/lib/Test/Conduit.pm30
1 files changed, 30 insertions, 0 deletions
diff --git a/t/lib/Test/Conduit.pm b/t/lib/Test/Conduit.pm
new file mode 100644
index 0000000..02454e7
--- /dev/null
+++ b/t/lib/Test/Conduit.pm
@@ -0,0 +1,30 @@
+use 5.008003;
+use MooseX::Declare;
+
+class Test::Conduit with Thread::Task::Role::Conduit {
+ use Thread::Queue;
+ use Thread::Task::Types qw(Queue_T);
+
+ has queue => (
+ isa => Queue_T,
+ is => 'ro',
+ init_arg => undef,
+ default => sub { Thread::Queue->new },
+ handles => {
+ signal => 'enqueue',
+ pop => 'dequeue',
+ },
+ );
+
+ method runloop() {
+ while (my $msg=$self->pop) {
+ $self->manager->on_signal($msg);
+ }
+ }
+
+ method runonce() {
+ $self->manager->on_signal($self->pop);
+ }
+}
+
+1;