[Moscow.pm] Coro

Mons Anderson mons на rambler-co.ru
Вт Янв 24 14:15:57 PST 2012


use Devel::GlobalDestruction;

sub DESTROY {

     return if in_global_destruction;
     AE::io...
}

В GD поработать нормальн овам уже не дадут. там можн обудет выполнить 
только синхронные операции. поэтому логика вызова AE в этом случае не 
совсем корректна.


On 21.01.2012 7:53, Ivan Petrov wrote:
>> Это уже мем, который популяризирует dk и остальные, которым не нравится жёсткие
>> ответы автора.
>> Если автор холит своё детище и оберегает от глупостей, на его взгляд, то это
>> нужно понимать :)
>> Автор-то — гений.
> он иногда довольно жестко отвечает даже в довольно спорных случаях.
>
> например имеем код на AE
>
> package Object;
>
> sub method {
>      my ($self) = @_;
>      AE::что-то sub {
>          $self->что-то..
>      }
> }
>
> у нас все прекрасно.
>
> Но вот если сюда приписать какую-то фигатень вида:
>
> package Object;
>
> sub method {
>      my ($self) = @_;
>      AE::что-то sub {
>          $self->что-то..
>      }
> }
>
> sub DESTROY {
>      my ($self) = @_;;
>      ...
>      AE::что-то =>  sub {
>          что-то там...
>      };
> }
>
> То начинаем огребать проблемы с глобальным деструктором если EV в
> бакенде используется. то есть упомянутый DESTROY может еще быть вызван
> вне глобального деструктора, а падать в core dump оно будет в EV.
>
> Отписался Леману на эту тему. Он сказал знаю мол, бага. Но из
> соображения производительности фиксить не буду. Фигня мол, ну и что
> что в глобальном деструкторе оно у вас падает? Даже опцию компиляции
> вводить не буду, это никому не нужно. А в итоге есть случаи в которых
> тесты написать сложно. В итоге тесты приходится писать с Perl
> имплементатором AE. а он в общем и целом ведет себя по другому чем EV.
>
> И это всего один из множества случаев общения с ML.
>
> Хотя временами он очень даже оперативно на баги реагирует, а самое
> главное он их хорошо пишет. С патчами и коментариями и итп :)
>



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