From Tim Moore, refactore WeakReference/Referenced to avoid signalling the observers when do a unref_nodelete.

This commit is contained in:
Robert Osfield
2010-05-17 09:03:44 +00:00
parent 4d88ba6efe
commit f832198128
3 changed files with 9 additions and 5 deletions

View File

@@ -334,7 +334,7 @@ void Referenced::setThreadSafeRefUnref(bool threadSafe)
#endif
}
int Referenced::unref_nodelete() const
int Referenced::unref_nodelete(bool signalObserversOnZeroRefCount) const
{
int result;
#if defined(_OSG_REFERENCED_USE_ATOMIC_OPERATIONS)
@@ -355,7 +355,7 @@ int Referenced::unref_nodelete() const
}
#endif
if (needUnreferencedSignal)
if (needUnreferencedSignal && signalObserversOnZeroRefCount)
{
signalObserversAndDelete(true,false,false);
}