< prev index next >

src/hotspot/share/prims/jvm.cpp

Print this page




3508   if (JvmtiExport::should_post_vm_object_alloc()) {
3509     JvmtiExport::post_vm_object_alloc(JavaThread::current(), result);
3510   }
3511   return res;
3512 JVM_END
3513 
3514 // Atomic ///////////////////////////////////////////////////////////////////////////////////////////
3515 
3516 JVM_LEAF(jboolean, JVM_SupportsCX8())
3517   JVMWrapper("JVM_SupportsCX8");
3518   return VM_Version::supports_cx8();
3519 JVM_END
3520 
3521 JVM_ENTRY(void, JVM_InitializeFromArchive(JNIEnv* env, jclass cls))
3522   JVMWrapper("JVM_InitializeFromArchive");
3523   Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve(cls));
3524   assert(k->is_klass(), "just checking");
3525   HeapShared::initialize_from_archived_subgraph(k);
3526 JVM_END
3527 







3528 // Returns an array of all live Thread objects (VM internal JavaThreads,
3529 // jvmti agent threads, and JNI attaching threads  are skipped)
3530 // See CR 6404306 regarding JNI attaching threads
3531 JVM_ENTRY(jobjectArray, JVM_GetAllThreads(JNIEnv *env, jclass dummy))
3532   ResourceMark rm(THREAD);
3533   ThreadsListEnumerator tle(THREAD, false, false);
3534   JvmtiVMObjectAllocEventCollector oam;
3535 
3536   int num_threads = tle.num_threads();
3537   objArrayOop r = oopFactory::new_objArray(SystemDictionary::Thread_klass(), num_threads, CHECK_NULL);
3538   objArrayHandle threads_ah(THREAD, r);
3539 
3540   for (int i = 0; i < num_threads; i++) {
3541     Handle h = tle.get_threadObj(i);
3542     threads_ah->obj_at_put(i, h());
3543   }
3544 
3545   return (jobjectArray) JNIHandles::make_local(env, threads_ah());
3546 JVM_END
3547 




3508   if (JvmtiExport::should_post_vm_object_alloc()) {
3509     JvmtiExport::post_vm_object_alloc(JavaThread::current(), result);
3510   }
3511   return res;
3512 JVM_END
3513 
3514 // Atomic ///////////////////////////////////////////////////////////////////////////////////////////
3515 
3516 JVM_LEAF(jboolean, JVM_SupportsCX8())
3517   JVMWrapper("JVM_SupportsCX8");
3518   return VM_Version::supports_cx8();
3519 JVM_END
3520 
3521 JVM_ENTRY(void, JVM_InitializeFromArchive(JNIEnv* env, jclass cls))
3522   JVMWrapper("JVM_InitializeFromArchive");
3523   Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve(cls));
3524   assert(k->is_klass(), "just checking");
3525   HeapShared::initialize_from_archived_subgraph(k);
3526 JVM_END
3527 
3528 JVM_ENTRY(void, JVM_LinkClassesForCDS(JNIEnv *env))
3529   JVMWrapper("JVM_LinkClassesForCDS");
3530   if (DynamicDumpSharedSpaces) {
3531     MetaspaceShared::link_and_cleanup_shared_classes(false, THREAD);
3532   }
3533 JVM_END
3534 
3535 // Returns an array of all live Thread objects (VM internal JavaThreads,
3536 // jvmti agent threads, and JNI attaching threads  are skipped)
3537 // See CR 6404306 regarding JNI attaching threads
3538 JVM_ENTRY(jobjectArray, JVM_GetAllThreads(JNIEnv *env, jclass dummy))
3539   ResourceMark rm(THREAD);
3540   ThreadsListEnumerator tle(THREAD, false, false);
3541   JvmtiVMObjectAllocEventCollector oam;
3542 
3543   int num_threads = tle.num_threads();
3544   objArrayOop r = oopFactory::new_objArray(SystemDictionary::Thread_klass(), num_threads, CHECK_NULL);
3545   objArrayHandle threads_ah(THREAD, r);
3546 
3547   for (int i = 0; i < num_threads; i++) {
3548     Handle h = tle.get_threadObj(i);
3549     threads_ah->obj_at_put(i, h());
3550   }
3551 
3552   return (jobjectArray) JNIHandles::make_local(env, threads_ah());
3553 JVM_END
3554 


< prev index next >