summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordakkar <dakkar@sardina.(none)>2009-08-06 15:15:03 +0200
committerdakkar <dakkar@sardina.(none)>2009-08-06 15:15:03 +0200
commit4de7ff82b202dbef8c57954126932710fe1a82bd (patch)
tree3b7b12012cd4a5d8892b88fe18164e3439c3c523
parentdequeue_nb but untested (diff)
downloadThread-Queue-Event-4de7ff82b202dbef8c57954126932710fe1a82bd.tar.gz
Thread-Queue-Event-4de7ff82b202dbef8c57954126932710fe1a82bd.tar.bz2
Thread-Queue-Event-4de7ff82b202dbef8c57954126932710fe1a82bd.zip
AnyEvent (untested), method rename, proper structureHEADmaster
-rw-r--r--Makefile.PL17
-rw-r--r--lib/Thread/Queue/Event/AnyEvent.pm17
-rw-r--r--lib/Thread/Queue/Event/Glib.pm2
-rw-r--r--t/01-glib.t (renamed from thr.pl)2
4 files changed, 36 insertions, 2 deletions
diff --git a/Makefile.PL b/Makefile.PL
new file mode 100644
index 0000000..5aa2d49
--- /dev/null
+++ b/Makefile.PL
@@ -0,0 +1,17 @@
+use inc::Module::Install;
+
+name 'Thread-Queue-Event';
+license 'perl';
+all_from 'lib/Thread/Queue/Event.pm';
+
+requires 'Thread::Queue' => 0,
+ 'Moose' => 0,
+ 'Class::MOP' => 0,
+ 'perl' => '5.8.0',
+;
+
+test_requires 'Test::Most' => 0,
+ 'Glib' => 0,
+;
+
+WriteAll;
diff --git a/lib/Thread/Queue/Event/AnyEvent.pm b/lib/Thread/Queue/Event/AnyEvent.pm
new file mode 100644
index 0000000..1435708
--- /dev/null
+++ b/lib/Thread/Queue/Event/AnyEvent.pm
@@ -0,0 +1,17 @@
+package Thread::Queue::Event::AnyEvent;
+use Moose::Role;
+use AnyEvent;
+
+requires 'event_fh';
+
+sub callback {
+ my ($self,$sub)=@_;
+
+ AnyEvent->io(
+ fh => $self->event_fh,
+ poll=>'r',
+ cb => $sub);
+}
+
+no Moose;
+1;
diff --git a/lib/Thread/Queue/Event/Glib.pm b/lib/Thread/Queue/Event/Glib.pm
index 1c36c99..ed97efa 100644
--- a/lib/Thread/Queue/Event/Glib.pm
+++ b/lib/Thread/Queue/Event/Glib.pm
@@ -4,7 +4,7 @@ use Glib;
requires 'event_fileno';
-sub add_watch {
+sub callback {
my ($self,$sub)=@_;
Glib::IO->add_watch($self->event_fileno,'in',$sub);
diff --git a/thr.pl b/t/01-glib.t
index a2e1386..491e4b3 100644
--- a/thr.pl
+++ b/t/01-glib.t
@@ -41,7 +41,7 @@ threads->create(
});
my $loop=Glib::MainLoop->new();
-$q->add_watch(sub{
+$q->callback(sub{
print "(m) waking up\n";
my $foo=$q->dequeue();
print "(m) got $foo\n";