NAME
Thread::Channel - Fast thread queues
VERSION
version 0.003
SYNOPSIS
use threads;
use Thread::Channel;
my $channel = Thread::Channel->new;
my $reader = threads->create(sub {
while (my $line = <>) {
$channel->enqueue($line)
};
$channel->enqueue(undef);
});
while (defined(my $line = $channel->dequeue)) {
print $line;
}
$reader->join;
DESCRIPTION
Thread::Channel is an alternative to Thread::Queue. By using a smart serialization ladder, it can achieve high performance without compromizing on flexibility.
METHODS
new()
This constructs a new channel.
enqueue(@items)
This enqueues the message @items
to the channel. Note that this list is a single message.
dequeue()
Dequeues a message from queue. Note that this returns a list, not (necessarily) a scalar. If the channel is empty, it will wait until a message arrives.
dequeue_nb()
Dequeues a message from queue. Note that this returns a list, not (necessarily) a scalar. If the channel is empty, it will return an empty list.
SEE ALSO
Thread::Queue
Sereal
AUTHOR
Leon Timmermans <fawaka@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2009 by Leon Timmermans.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.