[Moscow.pm] и как с этим AnyEvent::DBI работать

Ruslan Zakirov ruz на bestpractical.com
Пн Окт 25 08:32:31 PDT 2010


Привет.

Да, именно так. Нужно запатчить AE::DBI чтобы использовал блокирующие вызовы
во время глобального разрушения.

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


Подробная информация о списке рассылки Moscow-pm