equal
deleted
inserted
replaced
28 #include "code/codeCache.hpp" |
28 #include "code/codeCache.hpp" |
29 #include "code/debugInfoRec.hpp" |
29 #include "code/debugInfoRec.hpp" |
30 #include "gc/shared/collectedHeap.inline.hpp" |
30 #include "gc/shared/collectedHeap.inline.hpp" |
31 #include "gc/shared/gcLocker.hpp" |
31 #include "gc/shared/gcLocker.hpp" |
32 #include "gc/shared/generation.hpp" |
32 #include "gc/shared/generation.hpp" |
|
33 #include "gc/shared/referencePendingListLocker.hpp" |
33 #include "interpreter/bytecodeStream.hpp" |
34 #include "interpreter/bytecodeStream.hpp" |
34 #include "interpreter/bytecodeTracer.hpp" |
35 #include "interpreter/bytecodeTracer.hpp" |
35 #include "interpreter/bytecodes.hpp" |
36 #include "interpreter/bytecodes.hpp" |
36 #include "interpreter/interpreter.hpp" |
37 #include "interpreter/interpreter.hpp" |
37 #include "interpreter/oopMapCache.hpp" |
38 #include "interpreter/oopMapCache.hpp" |
372 return; |
373 return; |
373 } |
374 } |
374 |
375 |
375 // Do not profile method if current thread holds the pending list lock, |
376 // Do not profile method if current thread holds the pending list lock, |
376 // which avoids deadlock for acquiring the MethodData_lock. |
377 // which avoids deadlock for acquiring the MethodData_lock. |
377 if (InstanceRefKlass::owns_pending_list_lock((JavaThread*)THREAD)) { |
378 if (ReferencePendingListLocker::is_locked_by_self()) { |
378 return; |
379 return; |
379 } |
380 } |
380 |
381 |
381 // Grab a lock here to prevent multiple |
382 // Grab a lock here to prevent multiple |
382 // MethodData*s from being created. |
383 // MethodData*s from being created. |