Compte tenu de l'destructor ci-dessous:pointeur intelligent Destructeur Race Condition
~shared_ptr(){
*_ref_count--;
if(*_ref_count==0){
delete _p;
delete _ref_count;
}
}
Si
_ref_count == 2
peut deux fils libérant la cause intelligente de pointeur sur un double suppression (crash) et/ou pas de suppression du tout (fuite de mémoire) et comment?
Est-ce votre code ou un extrait d'une bibliothèque standard C++? – pm100
Quel est le type de '_ref_count'? Est-ce 'atomic'? –
@ pm100 no. C'est juste une mise en œuvre naïve. – user8512572