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

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


то есть запустил




On Wednesday, 16 October 2013, 18:06, ksvs <ksvs1996 на ymail.com> wrote:


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


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;
    };
}

-- 
Moscow.pm mailing list
moscow-pm на pm.org | http://moscow.pm.org



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