diff options
Diffstat (limited to 't/lib/Test/Conduit.pm')
-rw-r--r-- | t/lib/Test/Conduit.pm | 30 |
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; |