Size: a a a

2021 February 11

SB

S B in pro.net
EgorBo
ты в него this аргументом передаешь
а, точно блин
источник

IC

Ilya Chernoudov in pro.net
EgorBo
ты в него this аргументом передаешь
и это должно помочь от конкурентного вызова с финализатором из за того, что руты сохранятся?
источник

I

IdiocyAcceptance in pro.net
Тогда получается что такой кейс с рейсом с финализатором происходит только из-за того, что условный челик не соблюдает паттерн, которому уже туева хуча лет?
источник

I

IdiocyAcceptance in pro.net
Это обсуждается уже часа 3, забавно, если итог таков.
источник

E

EgorBo in pro.net
Тот паттерн больше против двойного вызова логики удаления. А то что может быть конкаррент - это хитрожопый кей с джитом
источник

E

EgorBo in pro.net
Вообще советую везде натыкивать ассерты если сомневаетесь
источник

DP

Denis Petukhov in pro.net
Так а что толку от супресса в конце
источник

DP

Denis Petukhov in pro.net
Конкурентность то будет всерно
источник

DP

Denis Petukhov in pro.net
Ты же супресс делаешь уже после утилизации ресурсов
источник

DP

Denis Petukhov in pro.net
Вот и финалайзер и диспоз вместе заедут в утилизацию
источник

I

IdiocyAcceptance in pro.net
Denis Petukhov
Конкурентность то будет всерно
Конкурентность разных потоков при вызове диспоуза или конкурентность основного и финализирующего потоков?
источник

I

IdiocyAcceptance in pro.net
EgorBo
Тот паттерн больше против двойного вызова логики удаления. А то что может быть конкаррент - это хитрожопый кей с джитом
Ну, паттерн с supress finalize студия так же из коробки предлагает реализовать
источник

DP

Denis Petukhov in pro.net
IdiocyAcceptance
Конкурентность разных потоков при вызове диспоуза или конкурентность основного и финализирующего потоков?
Основной и финалайзер. Конкурентность разных потоков надеюсь не пишут программисты. А от второе от них не зависит
источник

I

IdiocyAcceptance in pro.net
Тогда не понимаю как может файналайзер запуститься, если у тебя SuppressFinalize ещё не вызван, а джит знает что this ещё будет нужен для вызова этого метода
источник

I

IdiocyAcceptance in pro.net
Он этот метод не уберёт никуда
источник

I

IdiocyAcceptance in pro.net
и this останется висеть на стеке как рут
источник

DP

Denis Petukhov in pro.net
Переслано от Anatoly
очень просто, запустился Dispose(), выполняется, пользователь/оркестратор прибил аппу и финалайзер срочно-решительно побежал по финалайзер queue.

более того, если диспоз уже вызван и вы в нём не работаете с полями объекта, он может не считаться рутом для ГЦ и его можно собрать
источник

I

IdiocyAcceptance in pro.net
Или в регистре, не важно
источник

I

IdiocyAcceptance in pro.net
Ну и?) У тебя в dispose какая-то операция и потом SuppressFinalize (this)
источник

I

IdiocyAcceptance in pro.net
Пока твоя операция не выполнится, this будет жить
источник