Hi Serguei,

Thanks for taking a look.

On 10/03/2021 9:53 am, Serguei Spitsyn wrote:
On Tue, 9 Mar 2021 18:52:27 GMT, Chris Plummer <[email protected]> wrote:

David Holmes has updated the pull request incrementally with three additional 
commits since the last revision:

  - Fix typo
  - Fixed up BiasedLocking code in ObjectSynchronizer::enter
  - iFixed alignment in macro

JVMTI changes look good.

Hi David,

Nice unification, looks great.
A couple of comments.

src/hotspot/share/runtime/synchronizer.cpp

  638 int ObjectSynchronizer::wait(Handle obj, jlong millis, TRAPS) {
  639   JavaThread* current = THREAD->as_Java_thread();
  . . .
  652   DTRACE_MONITOR_WAIT_PROBE(monitor, obj(), current, millis);
  653   monitor->wait(millis, true, THREAD); // Not CHECK as we need following 
code

Is it intentional to use `THREAD` instead of `current` at line 653?

Yes, purely as a documentation aid - the "THREAD" usage indicates the wait() can lead to an exception. (Once TRAPS is defined using JavaThread the "current" variable won't be needed.)

1141 bool ObjectSynchronizer::request_deflate_idle_monitors() {
1142   Thread* current = Thread::current();
  . . .
1158     if (current->is_Java_thread()) {
1159       // JavaThread has to honor the blocking protocol.
1160       ThreadBlockInVM tbivm(current->as_Java_thread());
  . . .
Would it better to define `current` as at the line 639?
  There can be similar cases, e.g. the `deflate_idle_monitors()`.

I'm not sure what you mean - the current thread in these calls need not be a JavaThread ... hmmm actually ... since JDK-8254029 request_deflate_idle_monitors is only used by WhiteBox for testing, so the current thread must be a JavaThread (previously it could be VMThread during VM shutdown). But not so for deflate_idle_monitors

// This function is called by the MonitorDeflationThread to deflate
// ObjectMonitors. It is also called via do_final_audit_and_print_stats()
// by the VMThread.
size_t ObjectSynchronizer::deflate_idle_monitors() {

I'll make an adjustment to request_deflate and re-test.

Thanks,
David

-Serguei

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

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

Reply via email to