void NodeCore::clearReferent()
{
StLock<Mutex> _(*this);
- if (mReferent)
- assert(!mReferent->hasReference(*this));
mReferent = NULL;
}
void NodeCore::removeReference(NodeCore &p)
{
StLock<Mutex> _(*this);
- assert(hasReference(p));
mReferences.erase(&p);
}
-#if !defined(NDEBUG)
-
-bool NodeCore::hasReference(NodeCore &p)
-{
- assert(p.refCountForDebuggingOnly() > 0);
- return mReferences.find(&p) != mReferences.end();
-}
-
-#endif //NDEBUG
-
-
//
// ClearReferences clears the reference set but does not propagate
// anything; it is NOT recursive.
void NodeCore::clearReferences()
{
StLock<Mutex> _(*this);
- secinfo("ssnode", "%p clearing all %d references",
- this, int(mReferences.size()));
+ secinfo("ssnode", "%p clearing all %d references", this, int(mReferences.size()));
mReferences.erase(mReferences.begin(), mReferences.end());
}
void NodeCore::kill(NodeCore &ref)
{
StLock<Mutex> _(*this);
- assert(hasReference(ref));
ref.kill();
removeReference(ref);
}