RFR: 8257831: Suspend with handshakes [v8]
Robbin Ehn
rehn at openjdk.java.net
Thu Apr 15 06:47:56 UTC 2021
On Wed, 14 Apr 2021 16:05:39 GMT, Daniel D. Daugherty <dcubed at openjdk.org> wrote:
>> Robbin Ehn has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Fixed flag undef dep + spelling error
>
> src/hotspot/share/runtime/handshake.hpp line 99:
>
>> 97: // but we need to check for a safepoint before.
>> 98: // (this is due to a suspension handshake which put the JavaThread in blocked
>> 99: // state so a safepoint may be in-progress)
>
> nit: s/(this/(This/
> nit: s/in-progress)/in-progress.)/
Fixed
> src/hotspot/share/runtime/handshake.hpp line 166:
>
>> 164: // thread gets suspended again (after a resume)
>> 165: // and we have not yet processed it.
>> 166: bool _async_suspend_handshake;
>
> Does this need to be `volatile`?
No, _async_suspend_handshake is now only loaded/stored with mutex held.
> src/hotspot/share/runtime/handshake.hpp line 177:
>
>> 175: void set_suspended(bool to) { return Atomic::store(&_suspended, to); }
>> 176: bool has_async_suspend_handshake() { return _async_suspend_handshake; }
>> 177: void set_async_suspend_handshake(bool to) { _async_suspend_handshake = to; }
>
> Does this need to be an Atomic::store?
No, _async_suspend_handshake is now only loaded/stored with mutex held.
> src/hotspot/share/runtime/objectMonitor.cpp line 424:
>
>> 422: // thread that suspended us.
>> 423: _recursions = 0;
>> 424: _succ = NULL;
>
> You might want to add a comment here:
> // Don't need a full fence after clearing successor here because of the call to exit().
Fixed
-------------
PR: https://git.openjdk.java.net/jdk/pull/3191
More information about the hotspot-runtime-dev
mailing list