comparison src/share/vm/runtime/thread.cpp @ 12163:74608df95ba3

8022595: JSR292: deadlock during class loading of MethodHandles, MethodHandleImpl & MethodHandleNatives Reviewed-by: kvn, coleenp, dholmes
author vlivanov
date Mon, 26 Aug 2013 17:41:05 +0400
parents 02d7aa1456c9
children 27ffd1c4537b
comparison
equal deleted inserted replaced
12162:e47de6dfec5d 12163:74608df95ba3
3634 // initialize compiler(s) 3634 // initialize compiler(s)
3635 #if defined(COMPILER1) || defined(COMPILER2) || defined(SHARK) 3635 #if defined(COMPILER1) || defined(COMPILER2) || defined(SHARK)
3636 CompileBroker::compilation_init(); 3636 CompileBroker::compilation_init();
3637 #endif 3637 #endif
3638 3638
3639 if (EnableInvokeDynamic) {
3640 // Pre-initialize some JSR292 core classes to avoid deadlock during class loading.
3641 // It is done after compilers are initialized, because otherwise compilations of
3642 // signature polymorphic MH intrinsics can be missed
3643 // (see SystemDictionary::find_method_handle_intrinsic).
3644 initialize_class(vmSymbols::java_lang_invoke_MethodHandle(), CHECK_0);
3645 initialize_class(vmSymbols::java_lang_invoke_MemberName(), CHECK_0);
3646 initialize_class(vmSymbols::java_lang_invoke_MethodHandleNatives(), CHECK_0);
3647 }
3648
3639 #if INCLUDE_MANAGEMENT 3649 #if INCLUDE_MANAGEMENT
3640 Management::initialize(THREAD); 3650 Management::initialize(THREAD);
3641 #endif // INCLUDE_MANAGEMENT 3651 #endif // INCLUDE_MANAGEMENT
3642 3652
3643 if (HAS_PENDING_EXCEPTION) { 3653 if (HAS_PENDING_EXCEPTION) {