< prev index next >

src/share/vm/prims/jvm.cpp

Print this page
rev 11747 : [mq]: per.hotspot.patch
rev 11748 : imported patch pop_pl
rev 11749 : imported patch coleen_review
rev 11752 : [mq]: vm_api

*** 3350,3359 **** --- 3350,3389 ---- objArrayOop result = ClassLoader::get_system_packages(CHECK_NULL); return (jobjectArray) JNIHandles::make_local(result); JVM_END + // java.lang.ref.Reference /////////////////////////////////////////////////////////////// + + + JVM_ENTRY(jobject, JVM_GetAndClearReferencePendingList(JNIEnv* env)) + JVMWrapper("JVM_GetAndClearReferencePendingList"); + + MonitorLockerEx ml(Heap_lock); + oop ref = Universe::reference_pending_list(); + if (ref != NULL) { + Universe::set_reference_pending_list(NULL); + } + return JNIHandles::make_local(env, ref); + JVM_END + + JVM_ENTRY(jboolean, JVM_CheckReferencePendingList(JNIEnv* env, jboolean await)) + JVMWrapper("JVM_CheckReferencePendingList"); + 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; + } + JVM_END + + // ObjectInputStream /////////////////////////////////////////////////////////////// bool force_verify_field_access(Klass* current_class, Klass* field_class, AccessFlags access, bool classloader_only) { if (current_class == NULL) { return true;
< prev index next >