< prev index next >
src/hotspot/share/prims/jvmtiEventController.cpp
Print this page
*** 329,342 ****
void JvmtiEventControllerPrivate::enter_interp_only_mode(JvmtiThreadState *state) {
EC_TRACE(("[%s] # Entering interpreter only mode",
JvmtiTrace::safe_get_thread_name(state->get_thread())));
EnterInterpOnlyModeClosure hs;
! if (SafepointSynchronize::is_at_safepoint()) {
! hs.do_thread(state->get_thread());
} else {
! Handshake::execute_direct(&hs, state->get_thread());
}
}
void
--- 329,345 ----
void JvmtiEventControllerPrivate::enter_interp_only_mode(JvmtiThreadState *state) {
EC_TRACE(("[%s] # Entering interpreter only mode",
JvmtiTrace::safe_get_thread_name(state->get_thread())));
EnterInterpOnlyModeClosure hs;
! assert(state->get_thread()->is_Java_thread(), "just checking");
! JavaThread *target = (JavaThread *)state->get_thread();
! Thread *current = Thread::current();
! if ((target == current) || (target->active_handshaker() == current)) {
! hs.do_thread(target);
} else {
! Handshake::execute_direct(&hs, target);
}
}
void
*** 978,1002 ****
void
JvmtiEventController::set_frame_pop(JvmtiEnvThreadState *ets, JvmtiFramePop fpop) {
! MutexLocker mu(SafepointSynchronize::is_at_safepoint() ? NULL : JvmtiThreadState_lock);
JvmtiEventControllerPrivate::set_frame_pop(ets, fpop);
}
void
JvmtiEventController::clear_frame_pop(JvmtiEnvThreadState *ets, JvmtiFramePop fpop) {
! MutexLocker mu(SafepointSynchronize::is_at_safepoint() ? NULL : JvmtiThreadState_lock);
JvmtiEventControllerPrivate::clear_frame_pop(ets, fpop);
}
void
JvmtiEventController::clear_to_frame_pop(JvmtiEnvThreadState *ets, JvmtiFramePop fpop) {
! MutexLocker mu(SafepointSynchronize::is_at_safepoint() ? NULL : JvmtiThreadState_lock);
JvmtiEventControllerPrivate::clear_to_frame_pop(ets, fpop);
}
void
JvmtiEventController::change_field_watch(jvmtiEvent event_type, bool added) {
--- 981,1005 ----
void
JvmtiEventController::set_frame_pop(JvmtiEnvThreadState *ets, JvmtiFramePop fpop) {
! assert(SafepointSynchronize::is_at_safepoint() || JvmtiThreadState_lock->is_locked(), "Safepoint or must be locked");
JvmtiEventControllerPrivate::set_frame_pop(ets, fpop);
}
void
JvmtiEventController::clear_frame_pop(JvmtiEnvThreadState *ets, JvmtiFramePop fpop) {
! assert(SafepointSynchronize::is_at_safepoint() || JvmtiThreadState_lock->is_locked(), "Safepoint or must be locked");
JvmtiEventControllerPrivate::clear_frame_pop(ets, fpop);
}
void
JvmtiEventController::clear_to_frame_pop(JvmtiEnvThreadState *ets, JvmtiFramePop fpop) {
! assert(SafepointSynchronize::is_at_safepoint() || JvmtiThreadState_lock->is_locked(), "Safepoint or must be locked");
JvmtiEventControllerPrivate::clear_to_frame_pop(ets, fpop);
}
void
JvmtiEventController::change_field_watch(jvmtiEvent event_type, bool added) {
< prev index next >