Commits
David Young committed d19456dae26
In process_deferred_frees(), remove *all* deferred frees from the H5F_shared_t's queue before processing any, instead of removing just one, processing it, removing another, processing it, and so on. While we processed the first entry on the queue, we often called H5MF_xfree() again, which called process_deferred_frees() again, which processed the first entry, calling H5MF_xfree() again, and on and on, until the deferred frees list was exhausted. This deep recursion showed up as a wide, tall stack in my flame graphs. Taking all deferred entries off of the queue to start definitely breaks the recursion and saves processing time.