rootLatch.release();
}
if (subtreeRootIN != null) {
EnvironmentImpl envImpl = database.getDbEnvironment();
if (rootNeedsUpdating) {
/*
* modifyDbRoot will grab locks and we can't have the INList
* latches or root latch held while it tries to acquire locks.
*/
DbTree dbTree = envImpl.getDbTree();
dbTree.optionalModifyDbRoot(database);
RecoveryManager.traceRootDeletion
(envImpl.getLogger(), database);
}
/*
* Count obsolete nodes after logging the delete. We can do
* this without having the nodes of the subtree latched because the
* subtree has been detached from the tree.
*/
INList inList = envImpl.getInMemoryINs();
accountForSubtreeRemoval(inList, subtreeRootIN, localTracker);
}
}