<html><body><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, Гришаев Анатолий <0body0@rambler.ru> 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 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 shape="rect" ymailto="mailto:moscow-pm@pm.org" href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a 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></body></html>