Hi. Wooooooooh, nigga! Lindo! Exatamente o que eu queria, e até melhor já que a comunicação é até automatizada. =p
Obrigado, Stan! :-D []'s Em 10 de julho de 2012 17:59, Stanislaw Pusep <[email protected]>escreveu: > Cara, não é bem por aí que se usa fork_call :) > Infelizmente, tive que dar um RTFS para cair a ficha, então sua dúvida é > mais do que compreensível. > Trocando em miúdos, fork_call funciona da seguinte maneira: > > my $cv = AnyEvent->condvar; > for my $url (@{$urls}) { > $cv->begin; > fork_call { > return extract_links($url); > } sub { > push @pool, @{shift}; > $cv->end; > } > } > $cv->wait; > > Traduzindo: o primeiro bloco sub {} é o que rodará dentro do child. O > resultado retornado dentro desse bloco sofre um freeze() e é retornado, via > canal IPC adequado para o seu OS (pipe em UN*X, socket TCP em Win), para o > parent. O segundo bloco roda no parent, recebe o buffer do child, dá um > thaw() e retorna em @_. Ou seja, lembre-se disso: o primeiro bloco é child, > o segundo é parent. Child herda o escopo léxico do parent, mas somente > devolve o q vc quiser retornar. > > ABS() > > > > 2012/7/10 Junior Moraes <[email protected]> > >> Hi. >> >> Estou tendo um (óbvio) problema pra sharear variáveis utilizando o método >> fork_call() do módulo AnyEvent::Util, e como tudo o que eu menos quero é >> usar threads, então preciso de ajuda. >> >> Como o próprio nome do método diz, já esperava ter exatamente este >> problema por se tratar de um *fork* visto que um processo não acessa o >> outro, mas esperava achar uma solução mais simples pra conseguir fazer o >> IPC. >> >> Alguém já trabalhou com este método e conseguiu obter uma solução >> interessante? >> Escrevi um código simplório pra vocês entenderem melhor. No caso, o array >> *@pool* que vem zerado, já que o push ocorre num processo separado :( >> https://gist.github.com/3086129 >> >> Alguma *fucking* idéia? >> >> Obrigado desde já! >> []'s >> >> >> -- >> >> >> ______________________ >> < Junior "fvox" Moraes > >> ---------------------- >> \ >> \ >> .--. >> |o_o | >> |:_/ | >> // \ \ >> (| | ) >> /'\_ _/`\ >> \___)=(___/ >> >> >> >> =begin disclaimer >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> SaoPaulo-pm mailing list: [email protected] >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> =end disclaimer >> >> > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > > -- ______________________ < Junior "fvox" Moraes > ---------------------- \ \ .--. |o_o | |:_/ | // \ \ (| | ) /'\_ _/`\ \___)=(___/
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
