der destructor Da unten:Smart Pointer Destructor Race-Bedingung
~shared_ptr(){
*_ref_count--;
if(*_ref_count==0){
delete _p;
delete _ref_count;
}
}
Wenn
_ref_count == 2
kann zwei Threads die Smart-Pointer Ursache Doppel Löschen Freigabe (Absturz) und/oder gar nicht löschen (Speicherleck) und wie?
dies ist der Code oder ein Auszug aus einer C++ Standard-Bibliothek? – pm100
Was ist der Typ von '_ref_count'? Ist es "atomar"? –
@ pm100 Nr. Es ist nur eine naive Umsetzung. – user8512572