< prev index next >

src/hotspot/share/prims/jni.cpp

Print this page

        

*** 272,282 **** JNIHistogramElement::JNIHistogramElement(const char* elementName) { _name = elementName; uintx count = 0; while (Atomic::cmpxchg(1, &JNIHistogram_lock, 0) != 0) { ! while (OrderAccess::load_acquire(&JNIHistogram_lock) != 0) { count +=1; if ( (WarnOnStalledSpinLock > 0) && (count % WarnOnStalledSpinLock == 0)) { warning("JNIHistogram_lock seems to be stalled"); } --- 272,282 ---- JNIHistogramElement::JNIHistogramElement(const char* elementName) { _name = elementName; uintx count = 0; while (Atomic::cmpxchg(1, &JNIHistogram_lock, 0) != 0) { ! while (Atomic::load_acquire(&JNIHistogram_lock) != 0) { count +=1; if ( (WarnOnStalledSpinLock > 0) && (count % WarnOnStalledSpinLock == 0)) { warning("JNIHistogram_lock seems to be stalled"); }
*** 3914,3924 **** // Creation failed. We must reset vm_created *vm = 0; *(JNIEnv**)penv = 0; // reset vm_created last to avoid race condition. Use OrderAccess to // control both compiler and architectural-based reordering. ! OrderAccess::release_store(&vm_created, 0); } // Flush stdout and stderr before exit. fflush(stdout); fflush(stderr); --- 3914,3924 ---- // Creation failed. We must reset vm_created *vm = 0; *(JNIEnv**)penv = 0; // reset vm_created last to avoid race condition. Use OrderAccess to // control both compiler and architectural-based reordering. ! Atomic::release_store(&vm_created, 0); } // Flush stdout and stderr before exit. fflush(stdout); fflush(stderr);
< prev index next >