< 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 >