AE-AdHoc
view release on metacpan or search on metacpan
lib/AE/AdHoc.pm view on Meta::CPAN
B<Note>: If you do provide callback and want the event loop to stop there,
consider putting C<ae_send-E<gt>( ... )> somewhere inside the callback.
B<Note>: C<ae_begin()> acts at once, and does NOT return a closure. ae_end,
however, returns a subroutine reference just like C<ae_send>/C<ae_croak> do.
See begin/end section in L<AnyEvent>.
=cut
# set prototypes
sub ae_send (@); ## no critic
sub ae_croak (;$); ## no critic
sub ae_end (); ## no critic
# define ae_send, ae_croak and ae_end at once
foreach my $action (qw(send croak end)) {
my $name = "ae_$action";
my $code = sub {
my @args = @_;
lib/AE/AdHoc.pm view on Meta::CPAN
return sub {
return _error( "Leftover $exact called outside ae_recv" )
unless $cv;
return _error( "Leftover $exact called in $where")
unless $iter == $myiter;
$cv->$action(@args, @_);
}; # end closure
}; # end generated sub
no strict 'refs'; ## no critic
no warnings 'prototype'; ## no critic
*{$name} = $code;
};
sub ae_begin(@) { ## no critic
croak("ae_begin called outside ae_recv") unless $cv;
$cv->begin(@_);
};
( run in 1.498 second using v1.01-cache-2.11-cpan-39bf76dae61 )