From 7bd517fa3e76570c63879470394a82059b573329 Mon Sep 17 00:00:00 2001 From: dakkar Date: Wed, 5 Aug 2009 17:15:54 +0200 Subject: refactor and expose more methods --- Queue.pm | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/Queue.pm b/Queue.pm index bf83a0d..cd978e5 100644 --- a/Queue.pm +++ b/Queue.pm @@ -36,20 +36,31 @@ sub _build_queue { return Thread::Queue->new(); } -after enqueue => sub { - my ($self)=shift; - syswrite $self->pipes->[1],'0'; -}; +sub _pipe_write { + return syswrite $_[0]->pipes->[1],'0'; +} + +sub _pipe_read { + my $foo;sysread $_[0]->pipes->[0],$foo,1; + return $foo; +} + +sub event_fh { + return $_[0]->pipes->[0]; +} + +sub event_fileno { + return fileno($_[0]->event_fh); +} + +after enqueue => \&_pipe_write; -before dequeue => sub { - my ($self)=shift; - my $foo;sysread $self->pipes->[0],$foo,1; -}; +before dequeue => \&_pipe_read; sub add_watch { my ($self,$sub)=@_; - Glib::IO->add_watch(fileno($self->pipes->[0]),'in',$sub); + Glib::IO->add_watch($self->event_fileno,'in',$sub); } sub signal { @@ -58,7 +69,7 @@ sub signal { croak "Not signaling on an empty queue, would block" unless $self->pending; - syswrite $self->pipes->[1],'0'; + $self->_pipe_write(); } no Moose; -- cgit v1.2.3