[Moscow.pm] AnyEven::HTTP перед и после fork с сокетами между процессами

ksvs ksvs1996 на ymail.com
Ср Окт 16 08:05:48 PDT 2013



Зупусти с этим переопределением.
Судя, по нижеприведенномо логу резолвинг прошел. Или нет?
А в чем именно проблема?
Почему так падает скорость?

On Wednesday, 16 October 2013, 17:17, Mons Anderson <mons на cpan.org> wrote:

Подтверждаю, проблема с форками в AnyEvent::DNS.
Сокет там UDP'шный.

у нас решается так:

use AnyEvent::DNS ();
        
BEGIN {
    no warnings 'redefine';
    my $RESOLVER;
    my $FORPID = 0;
    my $res = \&AnyEvent::DNS::resolver;
    *AnyEvent::DNS::resolver = sub () {
        undef $RESOLVER if $FORPID != $$;
        $RESOLVER || do {
            #warn "Create overriden resolver for $$. previous was for $FORPID";
            undef $AnyEvent::DNS::RESOLVER;
            local $AnyEvent::DNS::RESOLVER;
            $FORPID = $$;
            $RESOLVER = AnyEvent::DNS->$res();
        };
    };
    # для дебага:
    my $new = \&AnyEvent::DNS::new;
    *AnyEvent::DNS::new = sub {
        Carp::cluck( "$$: Creating DNS resolver" );
        goto &$new;
    };
}
----------- следущая часть -----------
A non-text attachment was scrubbed...
Name: log
Type: application/octet-stream
Size: 3506 bytes
Desc: отсутствует
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20131016/f019425a/attachment.obj>


Подробная информация о списке рассылки Moscow-pm