< prev index next >

src/share/vm/compiler/compileBroker.cpp

Print this page

        

*** 30,40 **** #include "code/dependencyContext.hpp" #include "compiler/compileBroker.hpp" #include "compiler/compileLog.hpp" #include "compiler/compilerOracle.hpp" #include "compiler/directivesParser.hpp" - #include "gc/shared/referencePendingListLocker.hpp" #include "interpreter/linkResolver.hpp" #include "memory/allocation.inline.hpp" #include "oops/methodData.hpp" #include "oops/method.hpp" #include "oops/oop.inline.hpp" --- 30,39 ----
*** 899,917 **** // for freeing the associated compile tasks. [Or we could have // a single static monitor on which all these waiters sleep.] return; } - // If the requesting thread is holding the pending list lock - // then we just return. We can't risk blocking while holding - // the pending list lock or a 3-way deadlock may occur - // between the reference handler thread, a GC (instigated - // by a compiler thread), and compiled method registration. - if (ReferencePendingListLocker::is_locked_by_self()) { - return; - } - if (TieredCompilation) { // Tiered policy requires MethodCounters to exist before adding a method to // the queue. Create if we don't have them yet. method->get_method_counters(thread); } --- 898,907 ----
*** 1309,1319 **** /** * Should the current thread block until this compilation request * has been fulfilled? */ bool CompileBroker::is_compile_blocking() { - assert(!ReferencePendingListLocker::is_locked_by_self(), "possible deadlock"); return !BackgroundCompilation; } // ------------------------------------------------------------------ --- 1299,1308 ----
< prev index next >