summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordakkar <dakkar@sardina.(none)>2009-08-06 15:06:05 +0200
committerdakkar <dakkar@sardina.(none)>2009-08-06 15:06:05 +0200
commit0faea820a3fcc6d6a004332f7d2b97fd800a55cb (patch)
tree68f2a31ad42930b12779cb61ac077e422c7ec363
parentrefactor to roles (diff)
downloadThread-Queue-Event-0faea820a3fcc6d6a004332f7d2b97fd800a55cb.tar.gz
Thread-Queue-Event-0faea820a3fcc6d6a004332f7d2b97fd800a55cb.tar.bz2
Thread-Queue-Event-0faea820a3fcc6d6a004332f7d2b97fd800a55cb.zip
dequeue_nb but untested
-rw-r--r--lib/Thread/Queue/Event.pm15
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)=@_;