8223056: Remove Type-Stable-Memory support for Parkers #2089
As per the bug report, once we ensure the calls to unpark() are guaranteed to only occur on a live thread (protected by a ThreadsListHandle) Parkers (the synchronization object underlying java.util.concurrent.LockSupport) no longer need to use type-stable-memory (TSM).
As a Parker is inherently associated with a single JavaThread, the Parker is now embedded directly in JavaThread, avoiding the need to use new/delete.
The Parker and PlatformParker classes are now simplified from a memory management perspective. I also made them NONCOPYABLE for good measure. Possibly other constraints could be applied to them such as disallowing new/delete? (Though if we go that far maybe we need a new allocation base type?).
Testing: tiers 1-3 plus additional test builds
Thanks for looking at this.
On 20/01/2021 5:01 am, Coleen Phillimore wrote:
It is the permit counter for the Parker - see the implementations of
Yes - see ObjectMonitor::ExitEpilog. We'd have to do a lot of work to be
Sorry I don't follow the connection between os_windows.hpp and
BTW it struck me as a poor choice of naming to have a PlatformParker
@dholmes-ora This change now passes all automated pre-integration checks.
After integration, the commit message for the final commit will be:
At the time when this comment was updated there had been no new commits pushed to the
On 20/01/2021 5:18 pm, Robbin Ehn wrote:
Thanks for the review.
On 20/01/2021 11:26 pm, Coleen Phillimore wrote: