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