equal
deleted
inserted
replaced
820 VMThread::execute(&op); |
820 VMThread::execute(&op); |
821 return op.result(); |
821 return op.result(); |
822 WB_END |
822 WB_END |
823 |
823 |
824 WB_ENTRY(void, WB_DeoptimizeAll(JNIEnv* env, jobject o)) |
824 WB_ENTRY(void, WB_DeoptimizeAll(JNIEnv* env, jobject o)) |
|
825 MutexLocker mu(Compile_lock); |
825 CodeCache::mark_all_nmethods_for_deoptimization(); |
826 CodeCache::mark_all_nmethods_for_deoptimization(); |
826 Deoptimization::deoptimize_all_marked(); |
827 VM_Deoptimize op; |
|
828 VMThread::execute(&op); |
827 WB_END |
829 WB_END |
828 |
830 |
829 WB_ENTRY(jint, WB_DeoptimizeMethod(JNIEnv* env, jobject o, jobject method, jboolean is_osr)) |
831 WB_ENTRY(jint, WB_DeoptimizeMethod(JNIEnv* env, jobject o, jobject method, jboolean is_osr)) |
830 jmethodID jmid = reflected_method_to_jmid(thread, env, method); |
832 jmethodID jmid = reflected_method_to_jmid(thread, env, method); |
831 int result = 0; |
833 int result = 0; |
838 mh->code()->mark_for_deoptimization(); |
840 mh->code()->mark_for_deoptimization(); |
839 ++result; |
841 ++result; |
840 } |
842 } |
841 result += CodeCache::mark_for_deoptimization(mh()); |
843 result += CodeCache::mark_for_deoptimization(mh()); |
842 if (result > 0) { |
844 if (result > 0) { |
843 Deoptimization::deoptimize_all_marked(); |
845 VM_Deoptimize op; |
|
846 VMThread::execute(&op); |
844 } |
847 } |
845 return result; |
848 return result; |
846 WB_END |
849 WB_END |
847 |
850 |
848 WB_ENTRY(jboolean, WB_IsMethodCompiled(JNIEnv* env, jobject o, jobject method, jboolean is_osr)) |
851 WB_ENTRY(jboolean, WB_IsMethodCompiled(JNIEnv* env, jobject o, jobject method, jboolean is_osr)) |