четверг, 5 декабря 2013 г.

Багель - он КРУТОЙ товарищ. Пишет КРАЙНЕ умные статьи. Но не могу "пройти мимо"

Вот тут - http://roman.yankovsky.me/?p=1100

Комментарий:
"Идея здравая, понравилось, только каждый раз дергать создание нити имхо чересчур, можно наверное что-то наподобие пула прикрутить.

Далее, к примеру результатом должен возвращаться некий объект (тот-же TObject), здесь мы имеем огромный шанс получить мемлик.
Я бы переделал немного так: при вызове метода TAwaitable.Value: T; выставлять флаг, мол объект передан наружу и в деструкторе проверять этот флаг.
Если созданный объект не потребовался, разрушить его (ну как-то так, сумбурно…)"

Вот это - "только каждый раз дергать создание нити имхо чересчур, можно наверное что-то наподобие пула прикрутить." - БОЛЕЕ ЧЕМ "по делу". Тут - СОГЛАСЕН на все 100%.

А вот тут - "Далее, к примеру результатом должен возвращаться некий объект (тот-же TObject), здесь мы имеем огромный шанс получить мемлик.
Я бы переделал немного так: при вызове метода TAwaitable.Value: T; выставлять флаг, мол объект передан наружу и в деструкторе проверять этот флаг.
Если созданный объект не потребовался, разрушить его (ну как-то так, сумбурно…)"

-- скажем так - "смущён"... "флаг"... проверка "флага в деструкторе"...

"смущён"...

КРИТИКОВАТЬ - НЕ ИМЕЮ ПРАВА...

Но "мне кажется", что есть много разных "техник" для разрешения этого "конфликта" - или Owned-Component, или ARC, ну или "на худой конец" - подсчёт ссылок (http://18delphi.blogspot.ru/2013/05/blog-post_8702.html или http://18delphi.blogspot.ru/2013/04/iunknown.html или http://18delphi.blogspot.ru/2013/03/blog-post_4606.html).

Комментариев нет:

Отправить комментарий