RFR: 8234796: Refactor Handshake::execute to take a HandshakeOperation

Robbin Ehn robbin.ehn at oracle.com
Tue Nov 26 16:55:23 UTC 2019

Hi Per, thanks for having a look.

To support multiple handshake in-flight and some features e.g. suspend/resume,
more things needs to customized by the handshake operation.
And to let the execution code stay agnostic about how to execute a specific
handshake, the execution model should be supplied in the handshake operation.
This leads to HandshakeThreadOperation needs to be customized, since this is the
installed operation. Also we now need to figure out the memory life-cycle of
HandshakeThreadOperation which must be the same as HandshakeClosure, if we would
add asynch handshakes.

Secondly I hate this method:
virtual void do_thread(Thread* thread) = 0;
I never ever want Thread*, I want JavaThread* :)

On 2019-11-26 15:20, Per Liden wrote:
> What do you think?

With that said, I'm totally fine doing your suggestion instead!
But I must rename the issue also :)

I think this was the correct issue to respond to, update coming.

Thanks, Robbin

> /Per
>> Tested t1 and t1-3 together with the logging improvements in 8234742.
>> It was requested that "HandshakeOperation()" would take the name instead 
>> having "virtual const char* name();". Which is in this patch.
>> Thanks, Robbin

More information about the hotspot-dev mailing list