diff options
author | dakkar <dakkar@sardina.(none)> | 2009-08-06 15:15:03 +0200 |
---|---|---|
committer | dakkar <dakkar@sardina.(none)> | 2009-08-06 15:15:03 +0200 |
commit | 4de7ff82b202dbef8c57954126932710fe1a82bd (patch) | |
tree | 3b7b12012cd4a5d8892b88fe18164e3439c3c523 | |
parent | dequeue_nb but untested (diff) | |
download | Thread-Queue-Event-4de7ff82b202dbef8c57954126932710fe1a82bd.tar.gz Thread-Queue-Event-4de7ff82b202dbef8c57954126932710fe1a82bd.tar.bz2 Thread-Queue-Event-4de7ff82b202dbef8c57954126932710fe1a82bd.zip |
-rw-r--r-- | Makefile.PL | 17 | ||||
-rw-r--r-- | lib/Thread/Queue/Event/AnyEvent.pm | 17 | ||||
-rw-r--r-- | lib/Thread/Queue/Event/Glib.pm | 2 | ||||
-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); @@ -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"; |