4044
4045 delete thread;
4046
4047 // exit_globals() will delete tty
4048 exit_globals();
4049
4050 return true;
4051 }
4052
4053
4054 jboolean Threads::is_supported_jni_version_including_1_1(jint version) {
4055 if (version == JNI_VERSION_1_1) return JNI_TRUE;
4056 return is_supported_jni_version(version);
4057 }
4058
4059
4060 jboolean Threads::is_supported_jni_version(jint version) {
4061 if (version == JNI_VERSION_1_2) return JNI_TRUE;
4062 if (version == JNI_VERSION_1_4) return JNI_TRUE;
4063 if (version == JNI_VERSION_1_6) return JNI_TRUE;
4064 return JNI_FALSE;
4065 }
4066
4067
4068 void Threads::add(JavaThread* p, bool force_daemon) {
4069 // The threads lock must be owned at this point
4070 assert_locked_or_safepoint(Threads_lock);
4071
4072 // See the comment for this method in thread.hpp for its purpose and
4073 // why it is called here.
4074 p->initialize_queues();
4075 p->set_next(_thread_list);
4076 _thread_list = p;
4077 _number_of_threads++;
4078 oop threadObj = p->threadObj();
4079 bool daemon = true;
4080 // Bootstrapping problem: threadObj can be null for initial
4081 // JavaThread (or for threads attached via JNI)
4082 if ((!force_daemon) && (threadObj == NULL || !java_lang_Thread::is_daemon(threadObj))) {
4083 _number_of_non_daemon_threads++;
|
4044
4045 delete thread;
4046
4047 // exit_globals() will delete tty
4048 exit_globals();
4049
4050 return true;
4051 }
4052
4053
4054 jboolean Threads::is_supported_jni_version_including_1_1(jint version) {
4055 if (version == JNI_VERSION_1_1) return JNI_TRUE;
4056 return is_supported_jni_version(version);
4057 }
4058
4059
4060 jboolean Threads::is_supported_jni_version(jint version) {
4061 if (version == JNI_VERSION_1_2) return JNI_TRUE;
4062 if (version == JNI_VERSION_1_4) return JNI_TRUE;
4063 if (version == JNI_VERSION_1_6) return JNI_TRUE;
4064 if (version == JNI_VERSION_1_8) return JNI_TRUE;
4065 return JNI_FALSE;
4066 }
4067
4068
4069 void Threads::add(JavaThread* p, bool force_daemon) {
4070 // The threads lock must be owned at this point
4071 assert_locked_or_safepoint(Threads_lock);
4072
4073 // See the comment for this method in thread.hpp for its purpose and
4074 // why it is called here.
4075 p->initialize_queues();
4076 p->set_next(_thread_list);
4077 _thread_list = p;
4078 _number_of_threads++;
4079 oop threadObj = p->threadObj();
4080 bool daemon = true;
4081 // Bootstrapping problem: threadObj can be null for initial
4082 // JavaThread (or for threads attached via JNI)
4083 if ((!force_daemon) && (threadObj == NULL || !java_lang_Thread::is_daemon(threadObj))) {
4084 _number_of_non_daemon_threads++;
|