[Moscow.pm] Как народ борится с глобальным деструктором

Alexander Lourier aml на rulezz.ru
Ср Май 21 05:22:57 PDT 2008


В сообщении от 21 мая 2008 16:16 Ivan B. Serezhkin написал(a):

> Alexander Lourier wrote:
> > 1. Никто не сказал, что A и B это дети.
> > 2. Как раз ссылка на родителя, по логике, должна быть слабой, именно
> > тогда родитель первым сможет разрушиться, пока его дети целые и можно ими
> > попользоваться. Деструкторы детей будут вызываться после родителя, и они
> > должны корректно обрабатывать ситуацию !defined($self->{parent}).
>
> Нет нет и нет!
> Что то меня за живое взяло =)
> Единственный способ, когда я понимаю как себя вести -
> Это начал разрушатся родитель, и в процессе он сам убивает детей.
> А детям всёравно, потому что ссылка на родителя слабая.
> Когда ребёнок разрушается, родитель ещё не разрушен, но он в процессе
> разрушения.
> Если этот процесс не отконтролировать - то дети действительно разрушатся
> пожжее родителя, и не смогут чегонибудь сделать.

Это более общий случай. Я обычно стараюсь писать так, чтобы детям родитель был 
нужен вообще по минимуму, чтобы они были как можно автономнее. Дети посылают 
сообщения родителям только во время нормальной работы.

Хотя, ситуации разные бывают. И дать возможность ребенку обратиться к родителю 
во время разрушения тоже бывает нужно, согласен.

-- 
Alexander Lourier, http://aml.rulezz.ru


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