AnyEvent-JSONRPC
view release on metacpan or search on metacpan
inc/Test/TCP.pm view on Meta::CPAN
my $signame = (split(' ', $Config{sig_name}))[WTERMSIG($?)];
if ($signame =~ /^(ABRT|PIPE)$/) {
Test::More::diag("your server received SIG$signame");
}
}
}
if ($kid == 0 || $kid == -1) {
last;
}
}
}
if ($sig) {
kill $sig, $$; # rethrow signal after cleanup
}
if ($err) {
die $err; # rethrow exception after cleanup.
}
}
elsif ( $pid == 0 ) {
# child
$args{server}->($port);
exit;
}
else {
die "fork failed: $!";
}
}
sub _check_port {
my ($port) = @_;
my $remote = IO::Socket::INET->new(
Proto => 'tcp',
PeerAddr => '127.0.0.1',
PeerPort => $port,
);
if ($remote) {
close $remote;
return 1;
}
else {
return 0;
}
}
sub wait_port {
my $port = shift;
my $retry = 100;
while ( $retry-- ) {
return if _check_port($port);
Time::HiRes::sleep(0.1);
}
die "cannot open port: $port";
}
1;
__END__
=encoding utf8
#line 241
( run in 0.813 second using v1.01-cache-2.11-cpan-39bf76dae61 )