我有一个使用coro 6.06 版的 Perl 代码。
这是我的代码:
{
package AAA;
use AnyEvent::HTTP::LWP::UserAgent;
use Coro;
use Coro::AnyEvent; BEGIN { *CORE::GLOBAL::sleep = \&Coro::AnyEvent::sleep; };
sub new { return bless {} => shift };
sub main {
my ($self) = @_;
my $count = 1000;
my $h = {};
while (1) {
while (keys %$h >= $count ) {
sleep 1;
}
my $task = rand(1000);
my $coro = async (
sub {
my ($self, $task) = @_;
sleep( rand(1000) );
print ": $self - $coro - $task\n";
} => ($self, $task)
);
$h->{$coro} = $coro;
$coro->on_destroy(sub {
delete $h->{$coro};
undef $coro;
});
}
}
}
AAA->new->main;
有时(例如一天中的 1 次)它会因分段错误错误而失败。
它可能是什么错误,我如何检测它?