RFR: 8238761: Asynchronous handshakes [v3]

Robbin Ehn rehn at openjdk.java.net
Mon Sep 21 10:10:44 UTC 2020


On Mon, 21 Sep 2020 05:27:00 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> src/hotspot/share/runtime/handshake.hpp line 45:
>> 
>>> 43: // a single target/direct handshake or not, by the JavaThread that requested the
>>> 44: // handshake or the VMThread respectively.
>>> 45: class HandshakeClosure : public ThreadClosure, public CHeapObj<mtThread> {
>> 
>> Just to be clear. You haven't added support for a handshake that
>> must only be executed by the target thread yet, right? That's
>> future work, if I remember correctly...
>
> AsyncHandshakeClosures have operations that must, by definition, be executed by the target thread (if they are executed
> at all).

Yes as David says. The code that make sure this is case is:
static bool processor_filter(HandshakeOperation* op) {
  return !op->is_asynch();
}
Which is used e.g:
  return _queue.contains(processor_filter);

While process_self_inner() uses no filter.

-------------

PR: https://git.openjdk.java.net/jdk/pull/151


More information about the serviceability-dev mailing list