Quote:
Originally Posted by kovidgoyal
Glad to hear it.
|
I did a PR for the proposed fix. I say "proposed" because it is possible (probable?) that I missed a case or did something in a way you won't want to maintain. I commented the code where I made assumptions about its behavior or to justify implementation choices.
I tested it with a 24,000 book library with covers. This library would hang 2 out of 3 times with the old code. No hangs with the new code. Of course this isn't proof, but that, code path analysis, and lock chain analysis combine well enough for be to say "fixed".