src/hotspot/share/jvmci/jvmciRuntime.cpp
changeset 58901 2700c409ff10
parent 58760 1f7f707c1aa9
child 59056 15936b142f86
equal deleted inserted replaced
58900:434329f6f456 58901:2700c409ff10
   616   }
   616   }
   617 JRT_END
   617 JRT_END
   618 
   618 
   619 JRT_ENTRY(jint, JVMCIRuntime::identity_hash_code(JavaThread* thread, oopDesc* obj))
   619 JRT_ENTRY(jint, JVMCIRuntime::identity_hash_code(JavaThread* thread, oopDesc* obj))
   620   return (jint) obj->identity_hash();
   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
   621 JRT_END
   637 
   622 
   638 JRT_ENTRY(jint, JVMCIRuntime::test_deoptimize_call_int(JavaThread* thread, int value))
   623 JRT_ENTRY(jint, JVMCIRuntime::test_deoptimize_call_int(JavaThread* thread, int value))
   639   deopt_caller();
   624   deopt_caller();
   640   return (jint) value;
   625   return (jint) value;