AnyEvent-Tools

 view release on metacpan or  search on metacpan

t/06_pool.t  view on Meta::CPAN


    use_ok 'AnyEvent::Tools', 'pool';
}

{
    my $cv = condvar AnyEvent;
    my $pool = pool qw( a b );
    my $order = 0;
    my @res;

    my $busy = 0;
    my $cnt = 1;
    my $idle;

    $idle = AE::idle  sub {
        $pool->get(sub {
            my ($guard, $object) = @_;
            $busy++;
            push @res, { b => $busy, t => time };
            my $timer;
            $timer = AE::timer 0.1, 0 => sub {
                $busy--;
                undef $timer;
                undef $guard;

                if (@res >= 40) {
                    undef $idle;
                    $cv->send;
                }
            };
        });



( run in 0.347 second using v1.01-cache-2.11-cpan-87723dcf8b7 )