Size: a a a

2021 March 26

OB

Oleg B in dlang.ru
Евгений
Эм, это точно?
однозначно, сам натыкался оооч давно, от этого и запомнил: деструктор у класса может быть не вызван вообще
источник

OB

Oleg B in dlang.ru
Andrey Bukhanovsky
например, я размещаю ссылку на созданный объект в некоем массиве таких объектов. когда удаляется объет, надо эту ссылку из массива объектов удалить.
как у тебя объект удалится если ссылка на него в массиве лежит?
источник

Е

Евгений in dlang.ru
Oleg B
однозначно, сам натыкался оооч давно, от этого и запомнил: деструктор у класса может быть не вызван вообще
Ну оооо давно так и было, а сейчас вроде всегда деструктится то что осталось не задеструкченым при завершении проги.
источник

DH

Dark Hole in dlang.ru
Andrey Bukhanovsky
например, я размещаю ссылку на созданный объект в некоем массиве таких объектов. когда удаляется объет, надо эту ссылку из массива объектов удалить.
WeakRef? Но пока существует массив объект не будет удалён
источник

Е

Евгений in dlang.ru
Это же лютый фейл. Система может не все ресурсы забрать. Может у меня ресурс на соседнем серваке захвачен?
источник

OB

Oleg B in dlang.ru
Евгений
Ну оооо давно так и было, а сейчас вроде всегда деструктится то что осталось не задеструкченым при завершении проги.
источник

OB

Oleg B in dlang.ru
недавняя статья в блоге
источник

OB

Oleg B in dlang.ru
Andrey Bukhanovsky
например, я размещаю ссылку на созданный объект в некоем массиве таких объектов. когда удаляется объет, надо эту ссылку из массива объектов удалить.
а если ты сам его потёр, то будь добр сам же и из массива потереть)
источник

AB

Andrey Bukhanovsky in dlang.ru
Oleg B
как у тебя объект удалится если ссылка на него в массиве лежит?
ну вот я и выпиливаю в деструкторе. впрочем, имеет смысл подумать и над close()
источник

OB

Oleg B in dlang.ru
Andrey Bukhanovsky
ну вот я и выпиливаю в деструкторе. впрочем, имеет смысл подумать и над close()
всмысле ты в деструкторе удаляешь сам объект из массива?
источник

Е

Евгений in dlang.ru
А не можешь ли ты указать, где именно в этой статье такое написано? А то я пока только про отсутствие детерминизма вижу.
источник

OB

Oleg B in dlang.ru
Евгений
А не можешь ли ты указать, где именно в этой статье такое написано? А то я пока только про отсутствие детерминизма вижу.
источник

AB

Andrey Bukhanovsky in dlang.ru
Oleg B
всмысле ты в деструкторе удаляешь сам объект из массива?
хм. загоняюсь, да. попробую пример нарисовать, как нарисую - еще задам вопросы.
источник

OB

Oleg B in dlang.ru
Andrey Bukhanovsky
хм. загоняюсь, да. попробую пример нарисовать, как нарисую - еще задам вопросы.
прочитай статейку, что я скинул, возможно некоторые вопросы отпадут
источник

DH

Dark Hole in dlang.ru
Andrey Bukhanovsky
хм. загоняюсь, да. попробую пример нарисовать, как нарисую - еще задам вопросы.
Мне кажется ты хочешь шиворот навыворот
источник

DH

Dark Hole in dlang.ru
Gc сам удаляет объекты на которые нет ссылок
источник

AB

Andrey Bukhanovsky in dlang.ru
Oleg B
прочитай статейку, что я скинул, возможно некоторые вопросы отпадут
обязательно прочту
источник

OB

Oleg B in dlang.ru
Andrey Bukhanovsky
хм. загоняюсь, да. попробую пример нарисовать, как нарисую - еще задам вопросы.
допустим есть массив, ты его наполняешь, в какой-то момент хочешь убрать объект, что нужно сделать:
1. вызвать свой финализатор для объекта если таковое необходимо (close или makeInvalid или как ты его там назовёшь)
2. перезаписать массив без этого объекта, либо на место объекта записать null
источник

AB

Andrey Bukhanovsky in dlang.ru
Dark Hole
Мне кажется ты хочешь шиворот навыворот
вполне возможно (:
источник

Е

Евгений in dlang.ru
Может мой английский недостаточно хорош, но я не вижу тут утверждения, что деструктор может быть не вызван никогда.
источник