hotspot/src/share/vm/services/threadService.cpp
changeset 10739 91935236600e
parent 8076 96d498ec7ae1
child 11420 22ec1bad0dce
equal deleted inserted replaced
10738:cc19612c6b9f 10739:91935236600e
   749       _thread_status = java_lang_Thread::RUNNABLE;
   749       _thread_status = java_lang_Thread::RUNNABLE;
   750     } else {
   750     } else {
   751       _blocker_object = obj();
   751       _blocker_object = obj();
   752       JavaThread* owner = ObjectSynchronizer::get_lock_owner(obj, false);
   752       JavaThread* owner = ObjectSynchronizer::get_lock_owner(obj, false);
   753       if ((owner == NULL && _thread_status == java_lang_Thread::BLOCKED_ON_MONITOR_ENTER)
   753       if ((owner == NULL && _thread_status == java_lang_Thread::BLOCKED_ON_MONITOR_ENTER)
   754           || (owner != NULL && owner->is_attaching())) {
   754           || (owner != NULL && owner->is_attaching_via_jni())) {
   755         // ownership information of the monitor is not available
   755         // ownership information of the monitor is not available
   756         // (may no longer be owned or releasing to some other thread)
   756         // (may no longer be owned or releasing to some other thread)
   757         // make this thread in RUNNABLE state.
   757         // make this thread in RUNNABLE state.
   758         // And when the owner thread is in attaching state, the java thread
   758         // And when the owner thread is in attaching state, the java thread
   759         // is not completely initialized. For example thread name and id
   759         // is not completely initialized. For example thread name and id
   897     if (!include_jvmti_agent_threads && jt->is_jvmti_agent_thread()) {
   897     if (!include_jvmti_agent_threads && jt->is_jvmti_agent_thread()) {
   898       continue;
   898       continue;
   899     }
   899     }
   900 
   900 
   901     // skip jni threads in the process of attaching
   901     // skip jni threads in the process of attaching
   902     if (!include_jni_attaching_threads && jt->is_attaching()) {
   902     if (!include_jni_attaching_threads && jt->is_attaching_via_jni()) {
   903       continue;
   903       continue;
   904     }
   904     }
   905 
   905 
   906     instanceHandle h(cur_thread, (instanceOop) jt->threadObj());
   906     instanceHandle h(cur_thread, (instanceOop) jt->threadObj());
   907     _threads_array->append(h);
   907     _threads_array->append(h);