Я пытался найти ответ в течение некоторого времени, но я потерпел неудачу.
Предположим, что у нас есть shared_ptr
, созданный из одного потока. Затем мы передаем этот shared_ptr
в другие 2 потока (например, используя некоторую очередь). Таким образом, с этого момента есть 2 копии оригинала shared_ptr
, указывающие на один и тот же необработанный указатель.
Оба потока владельца будут брать свои копии этого shared_ptr
из очереди. Затем они передадут его в другой поток или уничтожат его.
Вопрос - это безопасно? Будет ли исходный указатель уничтожен правильно (не будет никакой гонки для счетчика?)