< prev index next >

src/hotspot/share/jvmci/jvmciRuntime.cpp

Print this page




 614   if (newline) {
 615     tty->cr();
 616   }
 617 JRT_END
 618 
 619 JRT_ENTRY(jint, JVMCIRuntime::identity_hash_code(JavaThread* thread, oopDesc* obj))
 620   return (jint) obj->identity_hash();
 621 JRT_END
 622 
 623 JRT_ENTRY(jboolean, JVMCIRuntime::thread_is_interrupted(JavaThread* thread, oopDesc* receiver, jboolean clear_interrupted))
 624   Handle receiverHandle(thread, receiver);
 625   // A nested ThreadsListHandle may require the Threads_lock which
 626   // requires thread_in_vm which is why this method cannot be JRT_LEAF.
 627   ThreadsListHandle tlh;
 628 
 629   JavaThread* receiverThread = java_lang_Thread::thread(receiverHandle());
 630   if (receiverThread == NULL || (EnableThreadSMRExtraValidityChecks && !tlh.includes(receiverThread))) {
 631     // The other thread may exit during this process, which is ok so return false.
 632     return JNI_FALSE;
 633   } else {
 634     return (jint) Thread::is_interrupted(receiverThread, clear_interrupted != 0);
 635   }
 636 JRT_END
 637 
 638 JRT_ENTRY(jint, JVMCIRuntime::test_deoptimize_call_int(JavaThread* thread, int value))
 639   deopt_caller();
 640   return (jint) value;
 641 JRT_END
 642 
 643 
 644 // private static JVMCIRuntime JVMCI.initializeRuntime()
 645 JVM_ENTRY_NO_ENV(jobject, JVM_GetJVMCIRuntime(JNIEnv *env, jclass c))
 646   JNI_JVMCIENV(thread, env);
 647   if (!EnableJVMCI) {
 648     JVMCI_THROW_MSG_NULL(InternalError, "JVMCI is not enabled");
 649   }
 650   JVMCIENV->runtime()->initialize_HotSpotJVMCIRuntime(JVMCI_CHECK_NULL);
 651   JVMCIObject runtime = JVMCIENV->runtime()->get_HotSpotJVMCIRuntime(JVMCI_CHECK_NULL);
 652   return JVMCIENV->get_jobject(runtime);
 653 JVM_END
 654 




 614   if (newline) {
 615     tty->cr();
 616   }
 617 JRT_END
 618 
 619 JRT_ENTRY(jint, JVMCIRuntime::identity_hash_code(JavaThread* thread, oopDesc* obj))
 620   return (jint) obj->identity_hash();
 621 JRT_END
 622 
 623 JRT_ENTRY(jboolean, JVMCIRuntime::thread_is_interrupted(JavaThread* thread, oopDesc* receiver, jboolean clear_interrupted))
 624   Handle receiverHandle(thread, receiver);
 625   // A nested ThreadsListHandle may require the Threads_lock which
 626   // requires thread_in_vm which is why this method cannot be JRT_LEAF.
 627   ThreadsListHandle tlh;
 628 
 629   JavaThread* receiverThread = java_lang_Thread::thread(receiverHandle());
 630   if (receiverThread == NULL || (EnableThreadSMRExtraValidityChecks && !tlh.includes(receiverThread))) {
 631     // The other thread may exit during this process, which is ok so return false.
 632     return JNI_FALSE;
 633   } else {
 634     return (jint) receiverThread->is_interrupted(clear_interrupted != 0);
 635   }
 636 JRT_END
 637 
 638 JRT_ENTRY(jint, JVMCIRuntime::test_deoptimize_call_int(JavaThread* thread, int value))
 639   deopt_caller();
 640   return (jint) value;
 641 JRT_END
 642 
 643 
 644 // private static JVMCIRuntime JVMCI.initializeRuntime()
 645 JVM_ENTRY_NO_ENV(jobject, JVM_GetJVMCIRuntime(JNIEnv *env, jclass c))
 646   JNI_JVMCIENV(thread, env);
 647   if (!EnableJVMCI) {
 648     JVMCI_THROW_MSG_NULL(InternalError, "JVMCI is not enabled");
 649   }
 650   JVMCIENV->runtime()->initialize_HotSpotJVMCIRuntime(JVMCI_CHECK_NULL);
 651   JVMCIObject runtime = JVMCIENV->runtime()->get_HotSpotJVMCIRuntime(JVMCI_CHECK_NULL);
 652   return JVMCIENV->get_jobject(runtime);
 653 JVM_END
 654 


< prev index next >