AnyEvent-ConnPool

 view release on metacpan or  search on metacpan

t/03-transact.t  view on Meta::CPAN

use strict;
use warnings;
use Test::More;
use AnyEvent::ConnPool;

my $acc = 0;
my $global_counter = 0;

my $connpool = AnyEvent::ConnPool->new(
    constructor     =>  sub {
        return {value => $global_counter++};
    },
    size    =>  5,
    init    =>  1,
);



my $c1 = $connpool->get(1);
my $c2 = $connpool->get(0);
my $c3 = $connpool->get(4);

$c1->lock();
$c2->lock();
$c3->lock();
for (1 .. 30) {
    my $c = $connpool->get();
    my $val = $c->conn()->{value};
    $acc += $val;
    
}

ok ($acc == 75, 'Transactional balancing is ok');
done_testing();



( run in 3.040 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )