Попытка создать Shared Ptr с атомарным подсчетом ссылок. ⇐ C++

Программы на C++. Форум разработчиков
Anonymous
Попытка создать Shared Ptr с атомарным подсчетом ссылок.

Сообщение Anonymous »

У меня есть реализация: https://godbolt.org/z/zTP4jEPxM
Получение heap-use-after-free с трассировкой, указывающей на

Код: Выделить всё

#0 0x102b82868 in int std::__1::__cxx_atomic_fetch_sub[abi:ue170006](std::__1::__cxx_atomic_base_impl*, int, std::__1::memory_order) cxx_atomic_impl.h:464
который находится в int count = mControlBlock->count.fetch_sub(1);

Код: Выделить всё

==23049==ERROR: AddressSanitizer: heap-use-after-free on address 0x000105004578 at pc 0x00010236f3a4 bp 0x00016dc36930 sp 0x00016dc36928
Что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/790 ... e-counting

Вернуться в «C++»