< prev index next >

src/hotspot/share/runtime/threads.cpp

Print this page

 397 
 398     JDK_Version::set_runtime_name(get_java_version_info(ik, vmSymbols::java_runtime_name_name()));
 399 
 400     JDK_Version::set_runtime_version(get_java_version_info(ik, vmSymbols::java_runtime_version_name()));
 401 
 402     JDK_Version::set_runtime_vendor_version(get_java_version_info(ik, vmSymbols::java_runtime_vendor_version_name()));
 403 
 404     JDK_Version::set_runtime_vendor_vm_bug_url(get_java_version_info(ik, vmSymbols::java_runtime_vendor_vm_bug_url_name()));
 405   }
 406 
 407   // an instance of OutOfMemory exception has been allocated earlier
 408   initialize_class(vmSymbols::java_lang_OutOfMemoryError(), CHECK);
 409   initialize_class(vmSymbols::java_lang_NullPointerException(), CHECK);
 410   initialize_class(vmSymbols::java_lang_ClassCastException(), CHECK);
 411   initialize_class(vmSymbols::java_lang_ArrayStoreException(), CHECK);
 412   initialize_class(vmSymbols::java_lang_ArithmeticException(), CHECK);
 413   initialize_class(vmSymbols::jdk_internal_vm_PreemptedException(), CHECK);
 414   initialize_class(vmSymbols::java_lang_ArrayIndexOutOfBoundsException(), CHECK);
 415   initialize_class(vmSymbols::java_lang_StackOverflowError(), CHECK);
 416   initialize_class(vmSymbols::java_lang_IllegalMonitorStateException(), CHECK);

 417   initialize_class(vmSymbols::java_lang_IllegalArgumentException(), CHECK);
 418   initialize_class(vmSymbols::java_lang_InternalError(), CHECK);
 419 }
 420 
 421 void Threads::initialize_jsr292_core_classes(TRAPS) {
 422   TraceTime timer("Initialize java.lang.invoke classes", TRACETIME_LOG(Info, startuptime));
 423 
 424   initialize_class(vmSymbols::java_lang_invoke_MethodHandle(), CHECK);
 425   initialize_class(vmSymbols::java_lang_invoke_ResolvedMethodName(), CHECK);
 426   initialize_class(vmSymbols::java_lang_invoke_MemberName(), CHECK);
 427   initialize_class(vmSymbols::java_lang_invoke_MethodHandleNatives(), CHECK);
 428 
 429   if (UseSharedSpaces) {
 430     HeapShared::initialize_java_lang_invoke(CHECK);
 431   }
 432 }
 433 
 434 // One-shot PeriodicTask subclass for reading the release file
 435 class ReadReleaseFileTask : public PeriodicTask {
 436  public:

1023 }
1024 
1025 
1026 jboolean Threads::is_supported_jni_version_including_1_1(jint version) {
1027   if (version == JNI_VERSION_1_1) return JNI_TRUE;
1028   return is_supported_jni_version(version);
1029 }
1030 
1031 
1032 jboolean Threads::is_supported_jni_version(jint version) {
1033   if (version == JNI_VERSION_1_2) return JNI_TRUE;
1034   if (version == JNI_VERSION_1_4) return JNI_TRUE;
1035   if (version == JNI_VERSION_1_6) return JNI_TRUE;
1036   if (version == JNI_VERSION_1_8) return JNI_TRUE;
1037   if (version == JNI_VERSION_9) return JNI_TRUE;
1038   if (version == JNI_VERSION_10) return JNI_TRUE;
1039   if (version == JNI_VERSION_19) return JNI_TRUE;
1040   if (version == JNI_VERSION_20) return JNI_TRUE;
1041   if (version == JNI_VERSION_21) return JNI_TRUE;
1042   if (version == JNI_VERSION_24) return JNI_TRUE;

1043   return JNI_FALSE;
1044 }
1045 
1046 void Threads::add(JavaThread* p, bool force_daemon) {
1047   // The threads lock must be owned at this point
1048   assert(Threads_lock->owned_by_self(), "must have threads lock");
1049   assert(p->monitor_owner_id() != 0, "should be set");
1050 
1051   BarrierSet::barrier_set()->on_thread_attach(p);
1052 
1053   // Once a JavaThread is added to the Threads list, smr_delete() has
1054   // to be used to delete it. Otherwise we can just delete it directly.
1055   p->set_on_thread_list();
1056 
1057   _number_of_threads++;
1058   oop threadObj = p->threadObj();
1059   bool daemon = true;
1060   // Bootstrapping problem: threadObj can be null for initial
1061   // JavaThread (or for threads attached via JNI)
1062   if (!force_daemon &&

 397 
 398     JDK_Version::set_runtime_name(get_java_version_info(ik, vmSymbols::java_runtime_name_name()));
 399 
 400     JDK_Version::set_runtime_version(get_java_version_info(ik, vmSymbols::java_runtime_version_name()));
 401 
 402     JDK_Version::set_runtime_vendor_version(get_java_version_info(ik, vmSymbols::java_runtime_vendor_version_name()));
 403 
 404     JDK_Version::set_runtime_vendor_vm_bug_url(get_java_version_info(ik, vmSymbols::java_runtime_vendor_vm_bug_url_name()));
 405   }
 406 
 407   // an instance of OutOfMemory exception has been allocated earlier
 408   initialize_class(vmSymbols::java_lang_OutOfMemoryError(), CHECK);
 409   initialize_class(vmSymbols::java_lang_NullPointerException(), CHECK);
 410   initialize_class(vmSymbols::java_lang_ClassCastException(), CHECK);
 411   initialize_class(vmSymbols::java_lang_ArrayStoreException(), CHECK);
 412   initialize_class(vmSymbols::java_lang_ArithmeticException(), CHECK);
 413   initialize_class(vmSymbols::jdk_internal_vm_PreemptedException(), CHECK);
 414   initialize_class(vmSymbols::java_lang_ArrayIndexOutOfBoundsException(), CHECK);
 415   initialize_class(vmSymbols::java_lang_StackOverflowError(), CHECK);
 416   initialize_class(vmSymbols::java_lang_IllegalMonitorStateException(), CHECK);
 417   initialize_class(vmSymbols::java_lang_IdentityException(), CHECK);
 418   initialize_class(vmSymbols::java_lang_IllegalArgumentException(), CHECK);
 419   initialize_class(vmSymbols::java_lang_InternalError(), CHECK);
 420 }
 421 
 422 void Threads::initialize_jsr292_core_classes(TRAPS) {
 423   TraceTime timer("Initialize java.lang.invoke classes", TRACETIME_LOG(Info, startuptime));
 424 
 425   initialize_class(vmSymbols::java_lang_invoke_MethodHandle(), CHECK);
 426   initialize_class(vmSymbols::java_lang_invoke_ResolvedMethodName(), CHECK);
 427   initialize_class(vmSymbols::java_lang_invoke_MemberName(), CHECK);
 428   initialize_class(vmSymbols::java_lang_invoke_MethodHandleNatives(), CHECK);
 429 
 430   if (UseSharedSpaces) {
 431     HeapShared::initialize_java_lang_invoke(CHECK);
 432   }
 433 }
 434 
 435 // One-shot PeriodicTask subclass for reading the release file
 436 class ReadReleaseFileTask : public PeriodicTask {
 437  public:

1024 }
1025 
1026 
1027 jboolean Threads::is_supported_jni_version_including_1_1(jint version) {
1028   if (version == JNI_VERSION_1_1) return JNI_TRUE;
1029   return is_supported_jni_version(version);
1030 }
1031 
1032 
1033 jboolean Threads::is_supported_jni_version(jint version) {
1034   if (version == JNI_VERSION_1_2) return JNI_TRUE;
1035   if (version == JNI_VERSION_1_4) return JNI_TRUE;
1036   if (version == JNI_VERSION_1_6) return JNI_TRUE;
1037   if (version == JNI_VERSION_1_8) return JNI_TRUE;
1038   if (version == JNI_VERSION_9) return JNI_TRUE;
1039   if (version == JNI_VERSION_10) return JNI_TRUE;
1040   if (version == JNI_VERSION_19) return JNI_TRUE;
1041   if (version == JNI_VERSION_20) return JNI_TRUE;
1042   if (version == JNI_VERSION_21) return JNI_TRUE;
1043   if (version == JNI_VERSION_24) return JNI_TRUE;
1044   if (version == JNI_VERSION_28) return JNI_TRUE;
1045   return JNI_FALSE;
1046 }
1047 
1048 void Threads::add(JavaThread* p, bool force_daemon) {
1049   // The threads lock must be owned at this point
1050   assert(Threads_lock->owned_by_self(), "must have threads lock");
1051   assert(p->monitor_owner_id() != 0, "should be set");
1052 
1053   BarrierSet::barrier_set()->on_thread_attach(p);
1054 
1055   // Once a JavaThread is added to the Threads list, smr_delete() has
1056   // to be used to delete it. Otherwise we can just delete it directly.
1057   p->set_on_thread_list();
1058 
1059   _number_of_threads++;
1060   oop threadObj = p->threadObj();
1061   bool daemon = true;
1062   // Bootstrapping problem: threadObj can be null for initial
1063   // JavaThread (or for threads attached via JNI)
1064   if (!force_daemon &&
< prev index next >