<HTML><BODY><br>Это один из видов говна, которое может быть в голове...<br><br>Итак, зачем.<br>Имеем сокет, по которому в скрипт поступают команды и данные. В один момент поступила команда, но данные еще не дошли (несколько мегабайтов). Но мы уже знаем что за команда и какой для нее нужно сделать SQL запрос, который может выполняться параллельно приходящим данным.<br>Хочется при поступлении команды начать выполнять код, который задаст SQL запрос и потом при надобности подождет данных из сокета. Данные из сокета удобно завернуть в IO::Handle, а там интерфейс не колбэчный...<br>Конечно, задачу можно решить традиционным способом, но хотелось странного...<br><br>С почтением,<br>  Илья Винокуров.<br><br><br>Mon, 16 Jun 2014 20:08:36 +0400 от Mons Anderson <mons@cpan.org>:<br>
<blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;">
        <div id="">
        



    









        
        


        
        
        
        
        

        
        

        
        



<div class="js-helper js-readmsg-msg">
        <style type="text/css"></style>
        <div>
                <base target="_self" href="https://e.mail.ru/">
                
                        <div id="style_14029349480000000929_BODY">Зачем вам ЭТО?<div><br><div><div>On 16.06.2014, at 11:54, Илья Винокуров <<a href="//e.mail.ru/compose/?mailto=mailto%3ailvin@mail.ru" target="_blank">ilvin@mail.ru</a>> wrote:</div><br><blockquote type="cite">
<div><br>Sun, 15 Jun 2014 23:22:56 +0300 от Андрей Костенко <<a href="//e.mail.ru/compose/?mailto=mailto%3aandrey@kostenko.name" target="_blank">andrey@kostenko.name</a>>:<br>
<blockquote style="border-left:1px solid #0857A6;margin:10px;padding:0 0 0 10px;"><div><div><div>Ох и говно в голове у вас, ребята</div></div></div></blockquote><br>Давайте переведем разговор на другую тему и не будем обсуждать имидж страны Украина в глазах москалей.<br><br>Недавно не осилил на AnyEvent сделать эмуляцию cede<br><br>Какая была задумка:<br><br>use AnyEvent;<br><br>my $flag = 0;<br><br>sub CEDE {<br>    my $cv = AE::cv;<br>    my $w = AE::idle sub {<br>        return unless $flag > 3;<br>        $cv->send;<br>    };<br>    $cv->recv;<br>    undef $w<br>}<br><br>my ($w1, $w2);<br>$w1 = AE::timer 1, 1, sub { $flag++ };<br>$w2 = AE::idle sub {<br>    # Тут код<br>    CEDE(); # Здесь ждем выполнения условия<br>    # Продолжаем выполнение<br>};<br><br>AE::cv->recv;<br><br>Результат - ошибка:<br>EV: error in callback (ignoring): AnyEvent::CondVar: recursive blocking wait attempted<br><br>В принципе возможна такая эмуляция или Марк сделал все, чтобы AE и Coro не конкурировали?<br><br>С почтением,<br>  Илья Винокуров.<br><br></div>
-- <br>Moscow.pm mailing list<br><a href="//e.mail.ru/compose/?mailto=mailto%3amoscow%2dpm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br></blockquote></div><br></div>
</div>
                        <div>-- <br>
Moscow.pm mailing list<br>
<a href="/compose?To=moscow%2dpm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
<br>
</div>
                
                <base target="_self" href="https://e.mail.ru/">
        </div>

        
</div>


</div>
</blockquote>
<br></BODY></HTML>