From 5196b09672927f157b3a20b8b38f8ab0ec5f622a Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Wed, 22 Aug 2007 09:48:39 +0000 Subject: [PATCH] Added debug ENFORCE_THREADSAFE paths into osg::Referenced, these are off by default. --- src/osg/Referenced.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) 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 "<