> No, second conditional code will be called for any subtree, which
> contains totally empty subtree. That check !isRoot covers case when
> the entire posting tree should be erased: we cannot just quit out of
> recursive cleanup, we have to make a scan here, starting from root.
Oh, I see
> Probably, variable isChildHasVoid has a bit confusing name. This flag
> indicates that some subtree:
> 1. Had empty pages
> 2. Did not bother deleting them, because there is a chance that it is
> a part of a bigger empty subtree.
> May be it'd be better to call the variable "someChildIsVoidSubtree".
hasEmptyChild? and hasNonEmptyChild (BTW, isAnyNonempy has missed 't')
And if the whole posting tree is empty,then we could mark root page as leaf and
remove all other pages in tree without any locking. Although, it could be a task
for separate patch.
--
Teodor Sigaev E-mail: teodor@sigaev.ru
WWW: http://www.sigaev.ru/