diff options
Diffstat (limited to 'lib/Thread')
-rw-r--r-- | lib/Thread/Queue/Event/AnyEvent.pm | 17 | ||||
-rw-r--r-- | lib/Thread/Queue/Event/Glib.pm | 2 |
2 files changed, 18 insertions, 1 deletions
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); |