32 #include "code/scopeDesc.hpp" |
32 #include "code/scopeDesc.hpp" |
33 #include "compiler/compileBroker.hpp" |
33 #include "compiler/compileBroker.hpp" |
34 #include "compiler/compileTask.hpp" |
34 #include "compiler/compileTask.hpp" |
35 #include "gc/shared/gcId.hpp" |
35 #include "gc/shared/gcId.hpp" |
36 #include "gc/shared/gcLocker.inline.hpp" |
36 #include "gc/shared/gcLocker.inline.hpp" |
|
37 #include "gc/shared/referencePendingListLocker.hpp" |
37 #include "gc/shared/workgroup.hpp" |
38 #include "gc/shared/workgroup.hpp" |
38 #include "interpreter/interpreter.hpp" |
39 #include "interpreter/interpreter.hpp" |
39 #include "interpreter/linkResolver.hpp" |
40 #include "interpreter/linkResolver.hpp" |
40 #include "interpreter/oopMapCache.hpp" |
41 #include "interpreter/oopMapCache.hpp" |
41 #include "jvmtifiles/jvmtiEnv.hpp" |
42 #include "jvmtifiles/jvmtiEnv.hpp" |
3648 // Note that we do not use CHECK_0 here since we are inside an EXCEPTION_MARK and |
3649 // Note that we do not use CHECK_0 here since we are inside an EXCEPTION_MARK and |
3649 // set_init_completed has just been called, causing exceptions not to be shortcut |
3650 // set_init_completed has just been called, causing exceptions not to be shortcut |
3650 // anymore. We call vm_exit_during_initialization directly instead. |
3651 // anymore. We call vm_exit_during_initialization directly instead. |
3651 SystemDictionary::compute_java_system_loader(CHECK_(JNI_ERR)); |
3652 SystemDictionary::compute_java_system_loader(CHECK_(JNI_ERR)); |
3652 |
3653 |
3653 #if INCLUDE_ALL_GCS |
3654 // Initialize reference pending list locker |
3654 // Support for ConcurrentMarkSweep. This should be cleaned up |
3655 bool needs_locker_thread = Universe::heap()->needs_reference_pending_list_locker_thread(); |
3655 // and better encapsulated. The ugly nested if test would go away |
3656 ReferencePendingListLocker::initialize(needs_locker_thread, CHECK_JNI_ERR); |
3656 // once things are properly refactored. XXX YSR |
|
3657 if (UseConcMarkSweepGC || UseG1GC) { |
|
3658 if (UseConcMarkSweepGC) { |
|
3659 ConcurrentMarkSweepThread::makeSurrogateLockerThread(CHECK_JNI_ERR); |
|
3660 } else { |
|
3661 ConcurrentMarkThread::makeSurrogateLockerThread(CHECK_JNI_ERR); |
|
3662 } |
|
3663 } |
|
3664 #endif // INCLUDE_ALL_GCS |
|
3665 |
3657 |
3666 // Always call even when there are not JVMTI environments yet, since environments |
3658 // Always call even when there are not JVMTI environments yet, since environments |
3667 // may be attached late and JVMTI must track phases of VM execution |
3659 // may be attached late and JVMTI must track phases of VM execution |
3668 JvmtiExport::enter_live_phase(); |
3660 JvmtiExport::enter_live_phase(); |
3669 |
3661 |