4087 // exit_globals() will delete tty
4088 exit_globals();
4089
4090 LogConfiguration::finalize();
4091
4092 return true;
4093 }
4094
4095
4096 jboolean Threads::is_supported_jni_version_including_1_1(jint version) {
4097 if (version == JNI_VERSION_1_1) return JNI_TRUE;
4098 return is_supported_jni_version(version);
4099 }
4100
4101
4102 jboolean Threads::is_supported_jni_version(jint version) {
4103 if (version == JNI_VERSION_1_2) return JNI_TRUE;
4104 if (version == JNI_VERSION_1_4) return JNI_TRUE;
4105 if (version == JNI_VERSION_1_6) return JNI_TRUE;
4106 if (version == JNI_VERSION_1_8) return JNI_TRUE;
4107 return JNI_FALSE;
4108 }
4109
4110
4111 void Threads::add(JavaThread* p, bool force_daemon) {
4112 // The threads lock must be owned at this point
4113 assert_locked_or_safepoint(Threads_lock);
4114
4115 // See the comment for this method in thread.hpp for its purpose and
4116 // why it is called here.
4117 p->initialize_queues();
4118 p->set_next(_thread_list);
4119 _thread_list = p;
4120 _number_of_threads++;
4121 oop threadObj = p->threadObj();
4122 bool daemon = true;
4123 // Bootstrapping problem: threadObj can be null for initial
4124 // JavaThread (or for threads attached via JNI)
4125 if ((!force_daemon) && (threadObj == NULL || !java_lang_Thread::is_daemon(threadObj))) {
4126 _number_of_non_daemon_threads++;
|
4087 // exit_globals() will delete tty
4088 exit_globals();
4089
4090 LogConfiguration::finalize();
4091
4092 return true;
4093 }
4094
4095
4096 jboolean Threads::is_supported_jni_version_including_1_1(jint version) {
4097 if (version == JNI_VERSION_1_1) return JNI_TRUE;
4098 return is_supported_jni_version(version);
4099 }
4100
4101
4102 jboolean Threads::is_supported_jni_version(jint version) {
4103 if (version == JNI_VERSION_1_2) return JNI_TRUE;
4104 if (version == JNI_VERSION_1_4) return JNI_TRUE;
4105 if (version == JNI_VERSION_1_6) return JNI_TRUE;
4106 if (version == JNI_VERSION_1_8) return JNI_TRUE;
4107 if (version == JNI_VERSION_9) return JNI_TRUE;
4108 return JNI_FALSE;
4109 }
4110
4111
4112 void Threads::add(JavaThread* p, bool force_daemon) {
4113 // The threads lock must be owned at this point
4114 assert_locked_or_safepoint(Threads_lock);
4115
4116 // See the comment for this method in thread.hpp for its purpose and
4117 // why it is called here.
4118 p->initialize_queues();
4119 p->set_next(_thread_list);
4120 _thread_list = p;
4121 _number_of_threads++;
4122 oop threadObj = p->threadObj();
4123 bool daemon = true;
4124 // Bootstrapping problem: threadObj can be null for initial
4125 // JavaThread (or for threads attached via JNI)
4126 if ((!force_daemon) && (threadObj == NULL || !java_lang_Thread::is_daemon(threadObj))) {
4127 _number_of_non_daemon_threads++;
|