2010-02-26 6 views
2
#define atomicAdd OSAtomicAdd32Barrier 

class PtrInterface: public Uncopyable { 
    private: 
    typedef volatile int RefCount; 
    mutable RefCount rc; 
    public: 
    inline void newRef() const { atomicAdd(1, &rc); } 
    inline void deleteRef() const { atomicAdd(-1, &rc); } 
}; 

[Ceci est la base d'un pointeur invasif refcounted; Je veux juste m'assurer que les refcounts ne sont pas désactivés]Sur MacOSX multicœur, le code C++ suivant est-il threadsafe?

Répondre

1

Cela semble correct à partir d'ici. Il existe de nombreux exemples publics que vous pouvez utiliser (tels que counter_t du Adobe Source Libraries) pour améliorer votre implémentation.