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 日に 1 回のように) セグメンテーション違反エラーで失敗します。
どのようなバグで、どうすれば検出できますか?