Great success :D<div>Aliás, 2 notas:</div><div>1) $AnyEvent::Util::MAX_FORKS assegura que as coisas não saiam do controle. O valor default (10) é bem modesto.</div><div>2) A complexidade da serialização/transferência do resultado do child deve ser considerada. O edge case, para mim, foi passar string com HTML p/child, e esse retornar um objeto HTML::Tree. Só valeria a pena em sistemas com > 4 núcleos.<br clear="all">

<br>ABS()<br><br>
<br><br><div class="gmail_quote">2012/7/11 Junior Moraes <span dir="ltr"><<a href="mailto:juniiior182@gmail.com" target="_blank">juniiior182@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hi.<br><br>Wooooooooh, nigga! Lindo!<br>Exatamente o que eu queria, e até melhor já que a comunicação é até automatizada. =p<br><br>Obrigado, Stan! :-D<br><br>[]'s<br><br><div class="gmail_quote">Em 10 de julho de 2012 17:59, Stanislaw Pusep <span dir="ltr"><<a href="mailto:creaktive@gmail.com" target="_blank">creaktive@gmail.com</a>></span> escreveu:<div>

<div class="h5"><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Cara, não é bem por aí que se usa fork_call :)<div>Infelizmente, tive que dar um RTFS para cair a ficha, então sua dúvida é mais do que compreensível.</div>



<div>Trocando em miúdos, fork_call funciona da seguinte maneira: <br></div></blockquote><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<div><br></div><div>my $cv = AnyEvent->condvar;</div><div>for my $url (@{$urls}) {</div><div>    $cv->begin;</div><div>    fork_call {</div><div>        return extract_links($url);</div><div>    } sub {</div><div>        push @pool, @{shift};</div>





<div>        $cv->end;</div><div>    }</div><div>}</div><div>$cv->wait;</div><div><br></div><div>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.</div>





<div><br>ABS()<br><br>
<br><br><div class="gmail_quote">2012/7/10 Junior Moraes <span dir="ltr"><<a href="mailto:juniiior182@gmail.com" target="_blank">juniiior182@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div><div>

Hi.<br><br>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.<br><br>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.<br>







<br>Alguém já trabalhou com este método e conseguiu obter uma solução interessante?<br>Escrevi um código simplório pra vocês entenderem melhor. No caso, o array <b>@pool</b> que vem zerado, já que o push ocorre num processo separado :(<br>







<a href="https://gist.github.com/3086129" target="_blank">https://gist.github.com/3086129</a><br><br>Alguma <i>fucking</i> idéia?<br><br>Obrigado desde já!<br>[]'s<br><br clear="all"><br>-- <br><pre style="line-height:normal;text-indent:0px;letter-spacing:normal;text-align:-webkit-auto;font-variant:normal;text-transform:none;font-style:normal;font-weight:normal;word-spacing:0px">

 ______________________
< Junior "fvox" Moraes >
 ----------------------
   \
    \
        .--.
       |o_o |
       |:_/ |
      //   \ \
     (|     | )
    /'\_   _/`\
    \___)=(___/</pre><br>
<br></div></div>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div><br></div>
<br>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div></div></div><div class="HOEnZb"><div class="h5"><br><br clear="all"><br>-- <br><pre style="line-height:normal;text-indent:0px;letter-spacing:normal;text-align:-webkit-auto;font-variant:normal;text-transform:none;font-style:normal;font-weight:normal;word-spacing:0px">

 ______________________
< Junior "fvox" Moraes >
 ----------------------
   \
    \
        .--.
       |o_o |
       |:_/ |
      //   \ \
     (|     | )
    /'\_   _/`\
    \___)=(___/</pre><br>
</div></div><br>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div><br></div>