Async-ContextSwitcher
view release on metacpan or search on metacpan
use AnyEvent;
my $cv = AnyEvent->condvar;
my $how_many = 10;
for my $i (1 .. $how_many) {
Async::ContextSwitcher->new( test => $i );
my $w;
$w = AnyEvent->timer( after => rand()*0.1, cb => cb_w_context {
$w = undef;
my $cb = cb_w_context {
is context->{test}, $i, "good $i";
$cv->send if --$how_many == 0;
};
AnyEvent::postpone { $cb->() };
});
}
$cv->recv;
( run in 0.823 second using v1.01-cache-2.11-cpan-49f99fa48dc )