[SP-pm] AnyEvent::Util::fork_call() e IPC
Junior Moraes
juniiior182 at gmail.com
Wed Jul 11 04:42:58 PDT 2012
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 <creaktive em gmail.com>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 <juniiior182 em gmail.com>
>
>> 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: SaoPaulo-pm em pm.org
>> 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: SaoPaulo-pm em pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
--
______________________
< Junior "fvox" Moraes >
----------------------
\
\
.--.
|o_o |
|:_/ |
// \ \
(| | )
/'\_ _/`\
\___)=(___/
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20120711/f30a6bc2/attachment.html>
More information about the SaoPaulo-pm
mailing list