equal
deleted
inserted
replaced
30 #include "code/dependencyContext.hpp" |
30 #include "code/dependencyContext.hpp" |
31 #include "compiler/compileBroker.hpp" |
31 #include "compiler/compileBroker.hpp" |
32 #include "compiler/compileLog.hpp" |
32 #include "compiler/compileLog.hpp" |
33 #include "compiler/compilerOracle.hpp" |
33 #include "compiler/compilerOracle.hpp" |
34 #include "compiler/directivesParser.hpp" |
34 #include "compiler/directivesParser.hpp" |
|
35 #include "gc/shared/referencePendingListLocker.hpp" |
35 #include "interpreter/linkResolver.hpp" |
36 #include "interpreter/linkResolver.hpp" |
36 #include "memory/allocation.inline.hpp" |
37 #include "memory/allocation.inline.hpp" |
37 #include "oops/methodData.hpp" |
38 #include "oops/methodData.hpp" |
38 #include "oops/method.hpp" |
39 #include "oops/method.hpp" |
39 #include "oops/oop.inline.hpp" |
40 #include "oops/oop.inline.hpp" |
46 #include "runtime/interfaceSupport.hpp" |
47 #include "runtime/interfaceSupport.hpp" |
47 #include "runtime/javaCalls.hpp" |
48 #include "runtime/javaCalls.hpp" |
48 #include "runtime/os.hpp" |
49 #include "runtime/os.hpp" |
49 #include "runtime/sharedRuntime.hpp" |
50 #include "runtime/sharedRuntime.hpp" |
50 #include "runtime/sweeper.hpp" |
51 #include "runtime/sweeper.hpp" |
|
52 #include "runtime/timerTrace.hpp" |
51 #include "trace/tracing.hpp" |
53 #include "trace/tracing.hpp" |
52 #include "utilities/dtrace.hpp" |
54 #include "utilities/dtrace.hpp" |
53 #include "utilities/events.hpp" |
55 #include "utilities/events.hpp" |
54 #ifdef COMPILER1 |
56 #ifdef COMPILER1 |
55 #include "c1/c1_Compiler.hpp" |
57 #include "c1/c1_Compiler.hpp" |
898 // If the requesting thread is holding the pending list lock |
900 // If the requesting thread is holding the pending list lock |
899 // then we just return. We can't risk blocking while holding |
901 // then we just return. We can't risk blocking while holding |
900 // the pending list lock or a 3-way deadlock may occur |
902 // the pending list lock or a 3-way deadlock may occur |
901 // between the reference handler thread, a GC (instigated |
903 // between the reference handler thread, a GC (instigated |
902 // by a compiler thread), and compiled method registration. |
904 // by a compiler thread), and compiled method registration. |
903 if (InstanceRefKlass::owns_pending_list_lock(JavaThread::current())) { |
905 if (ReferencePendingListLocker::is_locked_by_self()) { |
904 return; |
906 return; |
905 } |
907 } |
906 |
908 |
907 if (TieredCompilation) { |
909 if (TieredCompilation) { |
908 // Tiered policy requires MethodCounters to exist before adding a method to |
910 // Tiered policy requires MethodCounters to exist before adding a method to |