RFR (M): 8245721: Refactor the TaskTerminator
thomas.schatzl at oracle.com
Wed Jun 24 08:03:20 UTC 2020
can I have reviews for this refactoring of the (OWST) TaskTerminator
to make the algorithm more understandable.
The original implementation imho suffers from two issues:
- manual lock() and unlock() of the _blocker synchronization lock
everywhere, distributed around two separate methods.
- interspersing the actual spinning code somewhere inlined inbetween.
This change tries to hopefully successfully make reasoning about the
code *much* easier by different separation of these two methods, and
using scoped locks.
The final structure of the code has been intensively tested to not cause
a regression in performance, however it made a few "obvious" further
refactorings undesired due to signficant perf regressions.
I believe I found a good tradeoff here, but I am of course open to
improvements :) I tried to sketch a few of those ultimately unsuccessful
attempts in the CR.
tier1-5, many many perf rounds, many tier1-X rounds with other patches
More information about the hotspot-gc-dev