AnyEvent-Promises
view release on metacpan or search on metacpan
package t::Utils;
use strict;
use warnings;
use Exporter 'import';
use AnyEvent;
use Test::More;
our @EXPORT = qw(run_event_loop el_subtest);
sub run_event_loop(&@) {
my ( $code, %args ) = @_;
my $timeout = defined $args{timeout}? $args{timeout}: 10;
my $cv = AE::cv;
my $tmer;
$tmer
= AE::timer( $timeout, 0, sub { undef $tmer; $cv->send('TIMEOUT') } );
$code->($cv);
$cv->recv;
( run in 0.689 second using v1.01-cache-2.11-cpan-49f99fa48dc )