Size: a a a

2021 June 30

Е

Евгений in dlang.ru
Ага, флажок нужен, что обжект уже убит.
источник

МВ

Макс Воробьев... in dlang.ru
чем refCount == 0 не флаг ?
источник

Е

Евгений in dlang.ru
Флаг чего? Я про флаг, что объект уничтожен, но память-то еще не освобождена.
источник

Е

Евгений in dlang.ru
Как weak_ptr узнает, что объект уже на том свете?
источник

МВ

Макс Воробьев... in dlang.ru
refCount==0. объект в этом случае уже не валиден
источник

МВ

Макс Воробьев... in dlang.ru
вопрос только в том, что удалить после себя только счетчик, или память под объект тоже
источник

Е

Евгений in dlang.ru
А как считать ссылки на weak_ptr?
источник

МВ

Макс Воробьев... in dlang.ru
еще одним атомиком
источник

Е

Евгений in dlang.ru
Я всегда одним блоком хапал.
источник

Е

Евгений in dlang.ru
Это равносильно флагу.
источник

Е

Евгений in dlang.ru
Можно два счетчика, можно один счетчик и флаг. Я к слову делал всегда двумя счетчиками, если мне нужен был weak_ptr
источник

МВ

Макс Воробьев... in dlang.ru
ну я к тому, что weak владеет счетчиком совместно с шаредами. однако ресурсом владеют только шареды
источник

МВ

Макс Воробьев... in dlang.ru
еще проще думать, что счетчик владеет ресурсом и решает, когда его освободить
источник

Е

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

Е

Евгений in dlang.ru
А если два счетчика? :)
источник

МВ

Макс Воробьев... in dlang.ru
под счетчиком я подразумеваю 2 атомика на strong и weak ref
источник

МВ

Макс Воробьев... in dlang.ru
@egorpugin поправь, если не прав
источник

Е

Евгений in dlang.ru
Ну то есть там два счетчика все-таки ;)
источник

Е

Евгений in dlang.ru
Можно один счетчик на всех и булевый флажок с информацией уничтожен объект или еще жив.
источник

Е

Евгений in dlang.ru
Можно даже хак сделать и засунуть флажок в указатель.
источник