18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "classfile/classLoader.hpp"
27 #include "classfile/javaClasses.hpp"
28 #include "classfile/moduleEntry.hpp"
29 #include "classfile/systemDictionary.hpp"
30 #include "classfile/vmSymbols.hpp"
31 #include "code/codeCache.hpp"
32 #include "code/codeCacheExtensions.hpp"
33 #include "code/scopeDesc.hpp"
34 #include "compiler/compileBroker.hpp"
35 #include "compiler/compileTask.hpp"
36 #include "gc/shared/gcId.hpp"
37 #include "gc/shared/gcLocker.inline.hpp"
38 #include "gc/shared/referencePendingListLocker.hpp"
39 #include "gc/shared/workgroup.hpp"
40 #include "interpreter/interpreter.hpp"
41 #include "interpreter/linkResolver.hpp"
42 #include "interpreter/oopMapCache.hpp"
43 #include "jvmtifiles/jvmtiEnv.hpp"
44 #include "logging/log.hpp"
45 #include "logging/logConfiguration.hpp"
46 #include "memory/metaspaceShared.hpp"
47 #include "memory/oopFactory.hpp"
48 #include "memory/resourceArea.hpp"
49 #include "memory/universe.inline.hpp"
50 #include "oops/instanceKlass.hpp"
51 #include "oops/objArrayOop.hpp"
52 #include "oops/oop.inline.hpp"
53 #include "oops/symbol.hpp"
54 #include "oops/verifyOopClosure.hpp"
55 #include "prims/jvm_misc.hpp"
56 #include "prims/jvmtiExport.hpp"
57 #include "prims/jvmtiThreadState.hpp"
58 #include "prims/privilegedStack.hpp"
3697 reset_vm_info_property(CHECK_JNI_ERR);
3698
3699 quicken_jni_functions();
3700
3701 // No more stub generation allowed after that point.
3702 StubCodeDesc::freeze();
3703
3704 // Set flag that basic initialization has completed. Used by exceptions and various
3705 // debug stuff, that does not work until all basic classes have been initialized.
3706 set_init_completed();
3707
3708 LogConfiguration::post_initialize();
3709 Metaspace::post_initialize();
3710
3711 HOTSPOT_VM_INIT_END();
3712
3713 // record VM initialization completion time
3714 #if INCLUDE_MANAGEMENT
3715 Management::record_vm_init_completed();
3716 #endif // INCLUDE_MANAGEMENT
3717
3718 // Note that we do not use CHECK_0 here since we are inside an EXCEPTION_MARK and
3719 // set_init_completed has just been called, causing exceptions not to be shortcut
3720 // anymore. We call vm_exit_during_initialization directly instead.
3721
3722 // Initialize reference pending list locker
3723 bool needs_locker_thread = Universe::heap()->needs_reference_pending_list_locker_thread();
3724 ReferencePendingListLocker::initialize(needs_locker_thread, CHECK_JNI_ERR);
3725
3726 // Signal Dispatcher needs to be started before VMInit event is posted
3727 os::signal_init();
3728
3729 // Start Attach Listener if +StartAttachListener or it can't be started lazily
3730 if (!DisableAttachMechanism) {
3731 AttachListener::vm_start();
3732 if (StartAttachListener || AttachListener::init_at_startup()) {
3733 AttachListener::init();
3734 }
3735 }
3736
3737 // Launch -Xrun agents
3738 // Must be done in the JVMTI live phase so that for backward compatibility the JDWP
3739 // back-end can launch with -Xdebug -Xrunjdwp.
3740 if (!EagerXrunInit && Arguments::init_libraries_at_startup()) {
3741 create_vm_init_libraries();
3742 }
3743
3744 if (CleanChunkPoolAsync) {
|
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "classfile/classLoader.hpp"
27 #include "classfile/javaClasses.hpp"
28 #include "classfile/moduleEntry.hpp"
29 #include "classfile/systemDictionary.hpp"
30 #include "classfile/vmSymbols.hpp"
31 #include "code/codeCache.hpp"
32 #include "code/codeCacheExtensions.hpp"
33 #include "code/scopeDesc.hpp"
34 #include "compiler/compileBroker.hpp"
35 #include "compiler/compileTask.hpp"
36 #include "gc/shared/gcId.hpp"
37 #include "gc/shared/gcLocker.inline.hpp"
38 #include "gc/shared/workgroup.hpp"
39 #include "interpreter/interpreter.hpp"
40 #include "interpreter/linkResolver.hpp"
41 #include "interpreter/oopMapCache.hpp"
42 #include "jvmtifiles/jvmtiEnv.hpp"
43 #include "logging/log.hpp"
44 #include "logging/logConfiguration.hpp"
45 #include "memory/metaspaceShared.hpp"
46 #include "memory/oopFactory.hpp"
47 #include "memory/resourceArea.hpp"
48 #include "memory/universe.inline.hpp"
49 #include "oops/instanceKlass.hpp"
50 #include "oops/objArrayOop.hpp"
51 #include "oops/oop.inline.hpp"
52 #include "oops/symbol.hpp"
53 #include "oops/verifyOopClosure.hpp"
54 #include "prims/jvm_misc.hpp"
55 #include "prims/jvmtiExport.hpp"
56 #include "prims/jvmtiThreadState.hpp"
57 #include "prims/privilegedStack.hpp"
3696 reset_vm_info_property(CHECK_JNI_ERR);
3697
3698 quicken_jni_functions();
3699
3700 // No more stub generation allowed after that point.
3701 StubCodeDesc::freeze();
3702
3703 // Set flag that basic initialization has completed. Used by exceptions and various
3704 // debug stuff, that does not work until all basic classes have been initialized.
3705 set_init_completed();
3706
3707 LogConfiguration::post_initialize();
3708 Metaspace::post_initialize();
3709
3710 HOTSPOT_VM_INIT_END();
3711
3712 // record VM initialization completion time
3713 #if INCLUDE_MANAGEMENT
3714 Management::record_vm_init_completed();
3715 #endif // INCLUDE_MANAGEMENT
3716
3717 // Signal Dispatcher needs to be started before VMInit event is posted
3718 os::signal_init();
3719
3720 // Start Attach Listener if +StartAttachListener or it can't be started lazily
3721 if (!DisableAttachMechanism) {
3722 AttachListener::vm_start();
3723 if (StartAttachListener || AttachListener::init_at_startup()) {
3724 AttachListener::init();
3725 }
3726 }
3727
3728 // Launch -Xrun agents
3729 // Must be done in the JVMTI live phase so that for backward compatibility the JDWP
3730 // back-end can launch with -Xdebug -Xrunjdwp.
3731 if (!EagerXrunInit && Arguments::init_libraries_at_startup()) {
3732 create_vm_init_libraries();
3733 }
3734
3735 if (CleanChunkPoolAsync) {
|