src/share/vm/runtime/thread.cpp

Print this page




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++;