comparison src/share/vm/graal/graalVMToCompiler.cpp @ 10056:a323a9e20f9d

Fixed a few race conditions in the compilation queue.
author Christian Haeubl <haeubl@ssw.jku.at>
date Fri, 14 Jun 2013 19:12:56 +0200
parents 0f7ca53be929
children 3489047ffea2
comparison
equal deleted inserted replaced
10055:9469034773b2 10056:a323a9e20f9d
94 JavaCalls::call_static(&result, compilerKlass, vmSymbols::setOption_name(), vmSymbols::setOption_signature(), option, THREAD); 94 JavaCalls::call_static(&result, compilerKlass, vmSymbols::setOption_name(), vmSymbols::setOption_signature(), option, THREAD);
95 check_pending_exception("Error while calling setOption"); 95 check_pending_exception("Error while calling setOption");
96 return result.get_jboolean(); 96 return result.get_jboolean();
97 } 97 }
98 98
99 jboolean VMToCompiler::compileMethod(Method* method, Handle holder, int entry_bci, jboolean blocking, int priority) { 99 void VMToCompiler::compileMethod(Method* method, Handle holder, int entry_bci, jboolean blocking, int priority) {
100 assert(method != NULL, "just checking"); 100 assert(method != NULL, "just checking");
101 assert(!holder.is_null(), "just checking"); 101 assert(!holder.is_null(), "just checking");
102 Thread* THREAD = Thread::current(); 102 Thread* THREAD = Thread::current();
103 JavaValue result(T_BOOLEAN); 103 JavaValue result(T_VOID);
104 JavaCallArguments args; 104 JavaCallArguments args;
105 args.push_oop(instance()); 105 args.push_oop(instance());
106 args.push_long((jlong) (address) method); 106 args.push_long((jlong) (address) method);
107 args.push_oop(holder()); 107 args.push_oop(holder());
108 args.push_int(entry_bci); 108 args.push_int(entry_bci);
109 args.push_int(blocking); 109 args.push_int(blocking);
110 args.push_int(priority); 110 args.push_int(priority);
111 JavaCalls::call_interface(&result, vmToCompilerKlass(), vmSymbols::compileMethod_name(), vmSymbols::compileMethod_signature(), &args, THREAD); 111 JavaCalls::call_interface(&result, vmToCompilerKlass(), vmSymbols::compileMethod_name(), vmSymbols::compileMethod_signature(), &args, THREAD);
112 check_pending_exception("Error while calling compileMethod"); 112 check_pending_exception("Error while calling compileMethod");
113 return result.get_jboolean();
114 } 113 }
115 114
116 void VMToCompiler::shutdownCompiler() { 115 void VMToCompiler::shutdownCompiler() {
117 if (_graalRuntimePermObject != NULL) { 116 if (_graalRuntimePermObject != NULL) {
118 HandleMark hm; 117 HandleMark hm;