AnyEvent-Retry
view release on metacpan or search on metacpan
lib/AnyEvent/Retry/Interval.pm
lib/AnyEvent/Retry/Interval/API.pm
lib/AnyEvent/Retry/Interval/Constant.pm
lib/AnyEvent/Retry/Interval/Fibonacci.pm
lib/AnyEvent/Retry/Interval/Multi.pm
lib/AnyEvent/Retry/Types.pm
t/intervals/constant.t
t/intervals/fib.t
t/intervals/multi.t
t/release-pod-syntax.t
t/retry-basic-coro.t
t/retry-basic.t
t/retry-maxtimes.t
t/retry-undef.t
lib/AnyEvent/Retry/Coro.pm view on Meta::CPAN
required => 0,
writer => 'set_failure_cb',
);
has '+on_success' => (
init_arg => undef,
required => 0,
writer => 'set_success_cb',
);
has 'running_coro' => (
init_arg => undef,
accessor => 'running_coro',
clearer => 'clear_running_coro',
);
before start => sub {
my $self = shift;
Scalar::Util::weaken($self);
my $cb = Coro::rouse_cb;
$self->set_failure_cb( sub { $cb->( error => @_ ) } );
$self->set_success_cb( sub { $cb->( success => @_ ) } );
};
lib/AnyEvent/Retry/Coro.pm view on Meta::CPAN
}
catch {
warn $_;
return (0, 'error', $_);
}
};
override handle_tick => sub {
my ($self, $i) = @_;
weaken $self;
$self->running_coro(async {
$self->handle_result($self->run_code);
$self->clear_running_coro if defined $self;
});
};
sub DEMOLISH {
my $self = shift;
$self->running_coro->throw('DEMOLISH');
}
sub wait {
my ($status, @args) = Coro::rouse_wait();
return $args[0] if $status eq 'success';
die $args[1];
}
sub run {
my $self = shift;
( run in 0.358 second using v1.01-cache-2.11-cpan-3cd7ad12f66 )