Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Зачем надо ждать? Если число ссылок больше, чем один, значит кто-то захватил объект. Вот когда он освободит, будет проверено, есть ли еще ссылки не объект. Если нет, то объект удаляется.
Скорее всего я просто не понял сценарий.
жаль что сугубо заточен под задачу где есть поток удалятор, и 1-N поток юзателей
eraser {
atomic++;
updater1 {
atomic++;
job();
atomic--;
}
updater2 {
...
}
atomic--;
}
И я не очень понял и как получить (использовать) объект?
Но в этом случае нельзя полагаться на то, что объект используется минуту.
Объекты shared_ptr обеспечивают тот же уровень потокобезопасности что и встроенные типы. Экземпляр shared_ptr-а может «считываться» одновременно несколькими потоками (доступ с использованием только константных операций). В различные экземпляры shared_ptr-а может производиться «запись» (доступ с использованием изменяемых операций, таких как оператор= или reset) одновременно несколькими потоками (даже если эти экземпляры — копии и разделяют внутри один и тот же счетчик ссылок).
Любые другие варианты одновременного доступа приводят к непредсказуемому поведению.
Подсчет ссылок атомарными переменными в C/C++ и GCC