<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">А если исключить ресолвер как в
предыдущем письме? <br>
<br>
Тоже зависает?<br>
<br>
16.10.2013 14:46, ksvs пишет:<br>
</div>
<blockquote
cite="mid:1381920362.1855.YahooMailNeo@web171504.mail.ir2.yahoo.com"
type="cite">
<div style="color:#000; background-color:#fff;
font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial,
Lucida Grande, Sans-Serif;font-size:10pt">А у меня зависает.<br>
<div><span><br>
</span></div>
<div style="display: block;" class="yahoo_quoted"> <br>
<br>
<div style="font-family: HelveticaNeue, Helvetica Neue,
Helvetica, Arial, Lucida Grande, Sans-Serif; font-size:
10pt;">
<div style="font-family: HelveticaNeue, Helvetica Neue,
Helvetica, Arial, Lucida Grande, Sans-Serif; font-size:
12pt;">
<div dir="ltr"> <font face="Arial" size="2"> On
Wednesday, 16 October 2013, 13:02, Гришаев Анатолий
<a class="moz-txt-link-rfc2396E" href="mailto:0body0@rambler.ru"><0body0@rambler.ru></a> wrote:<br>
</font> </div>
<div class="y_msg_container">Перед форком или сразу после
нужно очистить кэш DNS:<br clear="none">
$AnyEvent::DNS::RESOLVER = undef;<br clear="none">
<br clear="none">
<br clear="none">
Вот уже работающий пример:<br clear="none">
==============================<br clear="none">
$| = 1;<br clear="none">
use strict;<br clear="none">
use warnings;<br clear="none">
use AnyEvent::DNS ();<br clear="none">
<br clear="none">
use EV;<br clear="none">
$EV::FLAG_FORKCHECK = 1;<br clear="none">
use AnyEvent;<br clear="none">
use AnyEvent::HTTP;<br clear="none">
<br clear="none">
my $URL = "<a moz-do-not-send="true" shape="rect"
href="http://www.bing.com/" target="_blank">http://www.bing.com</a>";<br
clear="none">
<br clear="none">
if ($ARGV[0]) {<br clear="none">
my $w = AnyEvent->condvar;<br clear="none">
http_get $URL, persistent => 0, keepalive =>
0, sub {<br clear="none">
print ". $_[1]{Status} $_[1]{Reason} $_[1]{URL};
$$\n";<br clear="none">
$w->send;<br clear="none">
};<br clear="none">
$w->recv;<br clear="none">
print "...\n";<br clear="none">
}<br clear="none">
<br clear="none">
use IO::Socket;<br clear="none">
socketpair(my $child, my $parent, AF_UNIX, SOCK_STREAM,
PF_UNSPEC) or <br clear="none">
die "socketpair: $!";<br clear="none">
<br clear="none">
$AnyEvent::DNS::RESOLVER = undef;<br clear="none">
my $kid_pid = fork;<br clear="none">
defined $kid_pid or die "Can't fork: $!";<br
clear="none">
<br clear="none">
unless ($kid_pid) {<br clear="none">
close $child;<br clear="none">
my $w = AnyEvent->condvar;<br clear="none">
my $wr = AnyEvent->io(fh => $parent, poll
=> "r", cb => sub {<br clear="none">
my $len = sysread $parent, my $buf, 1024;<br
clear="none">
unless ($len) {<br clear="none">
# print"child EXIT\n";<br clear="none">
exit;<br clear="none">
};<br clear="none">
print $buf;<br clear="none">
<br clear="none">
http_get $URL, persistent => 0, sub {<br
clear="none">
print "+ $_[1]{Status} $_[1]{Reason}
$_[1]{URL}; $$\n";<br clear="none">
syswrite $parent, "pong\n";<br clear="none">
};<br clear="none">
});<br clear="none">
$w->recv;<br clear="none">
exit;<br clear="none">
} else {<br clear="none">
close $parent;<br clear="none">
my $i = 0;<br clear="none">
my $w = AnyEvent->condvar;<br clear="none">
my $wr = AnyEvent->io(fh => $child, poll =>
"r", cb => sub {<br clear="none">
sysread $child, my $buf, 1024;<br clear="none">
# print $buf;<br clear="none">
if (++$i > 3) {<br clear="none">
# print "parent EXIT\n";<br clear="none">
exit;<br clear="none">
} else {<br clear="none">
syswrite $child, "ping $i\n";<br
clear="none">
}<br clear="none">
});<br clear="none">
syswrite $child, "ping $i\n";<br clear="none">
$w->recv;<br clear="none">
}<br clear="none">
<br clear="none">
==============================<br clear="none">
<br clear="none">
<br clear="none">
-- <br clear="none">
С уважением Анатолий.
<div class="yqt0443567821" id="yqtfd15139"><br
clear="none">
-- <br clear="none">
Moscow.pm mailing list<br clear="none">
<a moz-do-not-send="true" shape="rect"
ymailto="mailto:moscow-pm@pm.org"
href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a>
| <a moz-do-not-send="true" shape="rect"
href="http://moscow.pm.org/" target="_blank">http://moscow.pm.org</a><br
clear="none">
</div>
<br>
<br>
</div>
</div>
</div>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
</blockquote>
<br>
<br>
<div class="moz-signature">-- <br>
С уважением Анатолий.</div>
</body>
</html>