#!/usr/bin/perl
# the classical producer/consumer example.
# one process produces items, send s a signal.
# another process waits for that signal and
# consumed the item.
use Coro;
use Coro::Signal;
my $produced = new Coro::Signal;
my $consumed = new Coro::Signal;
my $finished = new Coro::Signal;
async {
for (0..9) {
print "produced something\n";
$produced->send;
$consumed->wait;
}
print "work done\n";
$finished->send;
};
async {
while () {
$produced->wait;
print "consuming something\n";
$consumed->send;
}
};
$finished->wait;
print "job finished\n";
syntax highlighted by Code2HTML, v. 0.9.1