diff options
author | dakkar <dakkar@sardina.(none)> | 2009-08-06 15:06:05 +0200 |
---|---|---|
committer | dakkar <dakkar@sardina.(none)> | 2009-08-06 15:06:05 +0200 |
commit | 0faea820a3fcc6d6a004332f7d2b97fd800a55cb (patch) | |
tree | 68f2a31ad42930b12779cb61ac077e422c7ec363 /lib/Thread | |
parent | refactor to roles (diff) | |
download | Thread-Queue-Event-0faea820a3fcc6d6a004332f7d2b97fd800a55cb.tar.gz Thread-Queue-Event-0faea820a3fcc6d6a004332f7d2b97fd800a55cb.tar.bz2 Thread-Queue-Event-0faea820a3fcc6d6a004332f7d2b97fd800a55cb.zip |
dequeue_nb but untested
Diffstat (limited to 'lib/Thread')
-rw-r--r-- | lib/Thread/Queue/Event.pm | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/Thread/Queue/Event.pm b/lib/Thread/Queue/Event.pm index 3d82c4d..1bb3a4e 100644 --- a/lib/Thread/Queue/Event.pm +++ b/lib/Thread/Queue/Event.pm @@ -57,6 +57,21 @@ after enqueue => \&_pipe_write; before dequeue => \&_pipe_read; +## TODO test this +around dequeue_nb => sub { + my ($dequeue_nb,$self,@params)=@_; + + my $pre=$self->pending; + + my @res=$dequeue_nb->($self,@params); + + my $post=$self->pending; + + $self->_pipe_read for 1..($post-$pre); + + return @res; +}; + sub signal { my ($self)=@_; |