Threadsafty
-
Ist das eigentlich Threadsafe?
class Singleton { static AClass *aclass_; //... ctor, dtor, copy ctor usw public: static AClass const & getInstance(); }; AClass *Singleton::aclass_ = 0; AClass const & Singleton::getInstance() { if(!aclass_) { static AClass tmp; aclass_ = &tmp; } return *tmp; }
-
Eine Berichtigung:
AClass const & Singleton::getInstance() { if(!aclass_) { static AClass tmp; aclass_ = &tmp; } return *aclass_; }
-
Ist nicht threadsafe. Das AClass Objekt könnte öfters erstellt werden. Such mal nach "Double Check Pattern".
-
Mastermesh schrieb:
Ist das eigentlich Threadsafe?
ich glaub nicht. du hast keine 'locks' drin.