Mercurial > hg > truffle
diff src/share/vm/prims/jvmtiEventController.cpp @ 2126:db2b0f8c1cef
6814943: getcpool001 catches more than one JvmtiThreadState problem
Summary: Mark field volatile, use membars, and change access order to close race
Reviewed-by: dcubed, dholmes
author | kamg |
---|---|
date | Tue, 11 Jan 2011 10:06:00 -0500 |
parents | f95d63e2154a |
children | 1d1603768966 |
line wrap: on
line diff
--- a/src/share/vm/prims/jvmtiEventController.cpp Mon Jan 10 17:14:53 2011 -0500 +++ b/src/share/vm/prims/jvmtiEventController.cpp Tue Jan 11 10:06:00 2011 -0500 @@ -667,14 +667,13 @@ JvmtiEventControllerPrivate::thread_ended(JavaThread *thread) { // Removes the JvmtiThreadState associated with the specified thread. // May be called after all environments have been disposed. + assert(JvmtiThreadState_lock->is_locked(), "sanity check"); EC_TRACE(("JVMTI [%s] # thread ended", JvmtiTrace::safe_get_thread_name(thread))); JvmtiThreadState *state = thread->jvmti_thread_state(); - if (state != NULL) { - MutexLocker mu(JvmtiThreadState_lock); - delete state; - } + assert(state != NULL, "else why are we here?"); + delete state; } void JvmtiEventControllerPrivate::set_event_callbacks(JvmtiEnvBase *env,