On 13/04/2021 5:26 pm, Robbin Ehn wrote:
On Tue, 13 Apr 2021 02:41:41 GMT, David Holmes <dhol...@openjdk.org> wrote:
Robbin Ehn has updated the pull request with a new target base due to a merge
or a rebase. The pull request now contains eight commits:
- Merge branch 'master' into SuspendInHandshake
- Review fixes 2
- White space fixes
- Merge branch 'master' into SuspendInHandshake
- Review fixes
- Merge branch 'master' into SuspendInHandshake
- Merge branch 'master' into SuspendInHandshake
- 8257831: Suspend with handshake (review baseline)
src/hotspot/share/runtime/objectMonitor.cpp line 447:
445: // Completed the tranisition.
446: SafepointMechanism::process_if_requested(current);
447: current->set_thread_state(_thread_in_vm);
I feel very uncomfortable that we remain _thread_blocked_trans across such a
lengthy chunk of code - particularly the call to exit()! This is an abuse of
the trans states which are only supposed to exist and be used to ensure the
correctness of the Dekker-duality when setting and reading the thread state.
And I still would prefer to see these state changes and related
safepoint-mechanism checks encapsulated somehow.
Yes we should figure out something here.
Could be a neat use of a lambda "on_suspension_do" ...
Note that we use to call exit() while blocked.
Yes, it is the use of trans that concerns me here as very little code
expects to encounter a trans-state.
Thanks,
David
-------------
PR: https://git.openjdk.java.net/jdk/pull/3191