< prev index next >

src/hotspot/share/prims/jvmtiEnv.cpp

Print this page

        

@@ -2837,19 +2837,15 @@
 
 
 // info_ptr - pre-checked for NULL
 jvmtiError
 JvmtiEnv::GetObjectMonitorUsage(jobject object, jvmtiMonitorUsage* info_ptr) {
-  JavaThread* calling_thread = JavaThread::current();
-  jvmtiError err = get_object_monitor_usage(calling_thread, object, info_ptr);
-  if (err == JVMTI_ERROR_THREAD_NOT_SUSPENDED) {
-    // Some of the critical threads were not suspended. go to a safepoint and try again
-    VM_GetObjectMonitorUsage op(this, calling_thread, object, info_ptr);
+  // It need to perform at safepoint for gathering stable data
+  // because monitor owner / waiters might not be suspended.
+  VM_GetObjectMonitorUsage op(this, JavaThread::current(), object, info_ptr);
     VMThread::execute(&op);
-    err = op.result();
-  }
-  return err;
+  return op.result();
 } /* end GetObjectMonitorUsage */
 
 
   //
   // Field functions
< prev index next >