diff --git a/src/osg/Referenced.cpp b/src/osg/Referenced.cpp index 075142f16..67715ef87 100644 --- a/src/osg/Referenced.cpp +++ b/src/osg/Referenced.cpp @@ -79,6 +79,8 @@ struct DeleteHandlerPointer typedef std::set ObserverSet; +//#define ENFORCE_THREADSAFE + static bool s_useThreadSafeReferenceCounting = getenv("OSG_THREAD_SAFE_REF_UNREF")!=0; // static std::auto_ptr s_deleteHandler(0); static DeleteHandlerPointer s_deleteHandler(0); @@ -111,7 +113,10 @@ Referenced::Referenced(): _refCount(0), _observers(0) { - if (s_useThreadSafeReferenceCounting) _refMutex = new OpenThreads::Mutex; +#ifndef ENFORCE_THREADSAFE + if (s_useThreadSafeReferenceCounting) +#endif + _refMutex = new OpenThreads::Mutex; } Referenced::Referenced(bool threadSafeRefUnref): @@ -119,7 +124,12 @@ Referenced::Referenced(bool threadSafeRefUnref): _refCount(0), _observers(0) { - if (threadSafeRefUnref) _refMutex = new OpenThreads::Mutex; + // if (!threadSafeRefUnref) osg::notify(osg::NOTICE)<<"Not ThreadSaef "<