JDK-8267079 : Support async handshakes that can be executed by a remote thread
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 17
  • Priority: P4
  • Status: Closed
  • Resolution: Won't Fix
  • Submitted: 2021-05-13
  • Updated: 2024-01-11
  • Resolved: 2024-01-11
Related Reports
Blocks :  
Relates :  
Description
JDK-8238761 introduced asynchronous handshakes. As [~dholmes] pointed out, the "async handshakes" terminology is conflated. Currently an async handshake cannot be executed by a remote thread, which limits certain use cases of async handshakes. For example, JDK-8236485 needs to issue no-op async handshakes during G1 concurrent refinement. The requesting thread can quickly execute the handshake for blocked target threads, then do something else while waiting for non-blocked threads.

This RFE allows an async handshake to be executed by a remote thread. It adds a subclass "SelfExecutedHandshakeClosure" inheriting "AsyncHandshakeClosure", in order to distinguish the two concepts:
- AsyncHandshakeClosure is for handshakes that is submitted asynchronously.
- SelfExecutedHandshakeClosure is for handshakes that must be executed by the target thread. These handshakes are always submitted asynchronously.
Comments
Runtime Triage: This is not on our current list of priorities. We will consider this feature if we receive additional customer requirements.
11-01-2024