<p>Привет.</p>
<p>Да, именно так. Нужно запатчить AE::DBI чтобы использовал блокирующие вызовы во время глобального разрушения.</p>
<p>Regards, Ruslan. From phone.</p>
<div class="gmail_quote">2010 10 25 16:20 пользователь &quot;Vladimir Timofeev&quot; &lt;<a href="mailto:vovkasm@gmail.com">vovkasm@gmail.com</a>&gt; написал:<br type="attribution">&gt; 2010/10/24 Vladimir Timofeev &lt;<a href="mailto:vovkasm@gmail.com">vovkasm@gmail.com</a>&gt;:<br>
&gt;&gt; 2010/10/24 Ruslan Zakirov &lt;<a href="mailto:ruz@bestpractical.com">ruz@bestpractical.com</a>&gt;:<br>&gt;&gt;&gt; Привет.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; И что делать? Писать баги, ждать пока пофиксят, а пока разрабатывать<br>
&gt;&gt;&gt; на Impl::Perl? Где там Marc в IRC обитает?<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; Сама-то логика работы с AE::DBI верная или нуно по другому?<br>&gt;&gt; Логика работы верная (и кстати, там нет рекурсии, т.к. у тебя<br>
&gt;&gt; внутренний вызов run_bundle внутри коллбэка).<br>&gt;&gt;<br>&gt;&gt; И по поводу что делать.<br>&gt;&gt; Подобной проблемы при нормальном использовании асинхронности (т.е.<br>&gt;&gt; запуска EV::loop из основного процесса) может вообще не возникнуть. Но<br>
&gt;&gt; может статься, что действительно какой-то таймаут &quot;течет&quot; в<br>&gt;&gt; AnyEvent::DBI или в EV что-то не так... тогда тесткейсы слать Марку<br>&gt;&gt; ;-)<br>&gt;&gt; Можно и своими силами искать, у меня нет сейчас времени, но быстрый<br>
&gt;&gt; взгляд показывает, что &quot;зашивается&quot; в XS_EV_timer из perl_destruct,<br>&gt;&gt; т.е. EV пытается что-то сделать, когда perl уже освободил память...<br>&gt; Короче, вот так будет работать:<br>&gt; @@ -31,6 +31,8 @@<br>
&gt; <br>&gt;  $done-&gt;recv;<br>&gt; <br>&gt; +$dbh = undef;<br>&gt; +<br>&gt;  sub run_bundle {<br>&gt;      my $cb = pop;<br>&gt;      my $query = shift;<br>&gt; <br>&gt; Т.е. надо уничтожать хендл до global destruct! На вопрос почему,<br>
&gt; копать в AnyEvent::DBI::DESTROY ;-)<br>&gt; <br>&gt;&gt;<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; 2010/10/23 Vladimir Timofeev &lt;<a href="mailto:vovkasm@gmail.com">vovkasm@gmail.com</a>&gt;:<br>&gt;&gt;&gt;&gt; А вот если добавить вверху:<br>
&gt;&gt;&gt;&gt; use AnyEvent::Impl::Perl;<br>&gt;&gt;&gt;&gt; то все работает...<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt; 2010/10/23 Ruslan Zakirov &lt;<a href="mailto:ruz@bestpractical.com">ruz@bestpractical.com</a>&gt;:<br>
&gt;&gt;&gt;&gt;&gt; Привет.<br>&gt;&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;&gt; Решил, что мне не так важен key/value и что с AnyEvent будет<br>&gt;&gt;&gt;&gt;&gt; достаточно заковык. Тут же натолкнулся на одну из заковык. Никак не<br>
&gt;&gt;&gt;&gt;&gt; врублюсь как слать пачки запросов в БД. Тестовый скрипт отрабатывает и<br>&gt;&gt;&gt;&gt;&gt; выходит c Bus Error. Что с этим делать? Возможно неправильно мозги у<br>&gt;&gt;&gt;&gt;&gt; меня работают? И нужели только рекурсией можно нормально реализовать<br>
&gt;&gt;&gt;&gt;&gt; функцию run_bundle?<br>&gt;&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;&gt; --<br>&gt;&gt;&gt;&gt;&gt; Best regards, Ruslan.<br>&gt;&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt;&gt; Moscow.pm mailing list<br>&gt;&gt;&gt;&gt;&gt; <a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org">http://moscow.pm.org</a><br>&gt;&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt; --<br>&gt;&gt;&gt;&gt; Vladimir Timofeev &lt;<a href="mailto:vovkasm@gmail.com">vovkasm@gmail.com</a>&gt;<br>&gt;&gt;&gt;&gt; --<br>&gt;&gt;&gt;&gt; Moscow.pm mailing list<br>
&gt;&gt;&gt;&gt; <a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org">http://moscow.pm.org</a><br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;<br>&gt;&gt;&gt;<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; --<br>&gt;&gt;&gt; Best regards, Ruslan.<br>
&gt;&gt;&gt; --<br>&gt;&gt;&gt; Moscow.pm mailing list<br>&gt;&gt;&gt; <a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org">http://moscow.pm.org</a><br>&gt;&gt;&gt;<br>&gt;&gt;<br>&gt;&gt;<br>
&gt;&gt;<br>&gt;&gt; --<br>&gt;&gt; Vladimir Timofeev &lt;<a href="mailto:vovkasm@gmail.com">vovkasm@gmail.com</a>&gt;<br>&gt;&gt;<br>&gt; <br>&gt; <br>&gt; <br>&gt; -- <br>&gt; Vladimir Timofeev &lt;<a href="mailto:vovkasm@gmail.com">vovkasm@gmail.com</a>&gt;<br>
&gt; --<br>&gt; Moscow.pm mailing list<br>&gt; <a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org">http://moscow.pm.org</a><br></div>