Mercurial > hg > graal-jvmci-8
diff src/share/vm/runtime/thread.cpp @ 15463:a20be10ad437
made Graal work with the HotSpot compiler queue and compiler threads, enabled by -XX:-UseGraalCompilationQueue
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 02 May 2014 00:36:27 +0200 |
parents | b68a693a7ad4 |
children | 66a9286203a2 |
line wrap: on
line diff
--- a/src/share/vm/runtime/thread.cpp Fri May 02 00:17:40 2014 +0200 +++ b/src/share/vm/runtime/thread.cpp Fri May 02 00:36:27 2014 +0200 @@ -2253,7 +2253,7 @@ // Do not throw asynchronous exceptions against the compiler thread // (the compiler thread should not be a Java thread -- fix in 1.4.2) - if (is_Compiler_thread()) return; + if (!can_call_java()) return; { // Actually throw the Throwable against the target Thread - however @@ -3311,6 +3311,12 @@ #endif } +#ifdef COMPILERGRAAL +bool CompilerThread::can_call_java() const { + return _compiler != NULL && _compiler->is_graal(); +} +#endif + void CompilerThread::oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf) { JavaThread::oops_do(f, cld_f, cf); if (_scanned_nmethod != NULL && cf != NULL) { @@ -4334,7 +4340,7 @@ { MutexLockerEx ml(doLock ? Threads_lock : NULL); ALL_JAVA_THREADS(p) { - if (p->is_Compiler_thread()) continue; + if (!p->can_call_java()) continue; address pending = (address)p->current_pending_monitor(); if (pending == monitor) { // found a match