The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Coro::Channel - message queues

SYNOPSIS

 use Coro::Channel;

 $q1 = new Coro::Channel <maxsize>;

 $q1->put("xxx");
 print $q1->get;

 die unless $q1->size;

DESCRIPTION

$q = new Coro:Channel $maxsize

Create a new channel with the given maximum size (unlimited if maxsize is omitted). Stating a size of zero gives you a traditional channel, i.e. a queue that can store only a single element.

$q->put($scalar)

Put the given scalar into the queue.

$q->get

Return the next element from the queue, waiting if necessary.

$q->size

Return the number of elements waiting to be consumed. Please note that:

  if ($q->size) {
     my $data = $q->get;
  }

is NOT a race condition but works fine.

AUTHOR

 Marc Lehmann <pcg@goof.com>
 http://www.goof.com/pcg/marc/