--- old/src/share/vm/prims/jvm.cpp 2016-08-08 20:27:52.664271102 -0400 +++ new/src/share/vm/prims/jvm.cpp 2016-08-08 20:27:52.560270586 -0400 @@ -3366,18 +3366,17 @@ return JNIHandles::make_local(env, ref); JVM_END -JVM_ENTRY(jboolean, JVM_CheckReferencePendingList(JNIEnv* env, jboolean await)) - JVMWrapper("JVM_CheckReferencePendingList"); +JVM_ENTRY(jboolean, JVM_HasReferencePendingList(JNIEnv* env)) + JVMWrapper("JVM_HasReferencePendingList"); MonitorLockerEx ml(Heap_lock); - if (Universe::reference_pending_list() != NULL) { - return true; - } else if (await) { - do { - ml.wait(); - } while (Universe::reference_pending_list() == NULL); - return true; - } else { - return false; + return Universe::has_reference_pending_list(); +JVM_END + +JVM_ENTRY(void, JVM_WaitForReferencePendingList(JNIEnv* env)) + JVMWrapper("JVM_WaitForReferencePendingList"); + MonitorLockerEx ml(Heap_lock); + while (!Universe::has_reference_pending_list()) { + ml.wait(); } JVM_END