Вот тут - 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).
Комментарий:
"Идея здравая, понравилось, только каждый раз дергать создание нити имхо чересчур, можно наверное что-то наподобие пула прикрутить.
Далее, к примеру результатом должен возвращаться некий объект (тот-же 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).
Комментариев нет:
Отправить комментарий