< prev index next >

src/hotspot/share/prims/jvmtiThreadState.cpp

Print this page

        

@@ -270,13 +270,13 @@
     assert(_cur_stack_depth >= 0, "incr/decr_cur_stack_depth mismatch");
   }
 }
 
 int JvmtiThreadState::cur_stack_depth() {
-  guarantee(SafepointSynchronize::is_at_safepoint() ||
-    (JavaThread *)Thread::current() == get_thread(),
-    "must be current thread or at safepoint");
+  Thread *current = Thread::current();
+  guarantee(current == get_thread() || current == get_thread()->active_handshaker(),
+    "must be current thread or direct handshake");
 
   if (!is_interp_only_mode() || _cur_stack_depth == UNKNOWN_STACK_DEPTH) {
     _cur_stack_depth = count_frames();
   } else {
     // heavy weight assert
< prev index next >