diff options
Diffstat (limited to 'openjdkjvmti/ti_thread.cc')
-rw-r--r-- | openjdkjvmti/ti_thread.cc | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/openjdkjvmti/ti_thread.cc b/openjdkjvmti/ti_thread.cc index 13eebbff04..33cc754bf6 100644 --- a/openjdkjvmti/ti_thread.cc +++ b/openjdkjvmti/ti_thread.cc @@ -265,12 +265,13 @@ jvmtiError ThreadUtil::GetThreadInfo(jvmtiEnv* env, jthread thread, jvmtiThreadI art::Thread* self = art::Thread::Current(); art::ScopedObjectAccess soa(self); - art::MutexLock mu(self, *art::Locks::thread_list_lock_); - art::Thread* target; jvmtiError err = ERR(INTERNAL); - if (!GetNativeThread(thread, soa, &target, &err)) { - return err; + { + art::MutexLock mu(self, *art::Locks::thread_list_lock_); + if (!GetNativeThread(thread, soa, &target, &err)) { + return err; + } } JvmtiUniquePtr<char[]> name_uptr; @@ -637,10 +638,11 @@ jvmtiError ThreadUtil::GetAllThreads(jvmtiEnv* env, art::Thread* current = art::Thread::Current(); art::ScopedObjectAccess soa(current); - - art::MutexLock mu(current, *art::Locks::thread_list_lock_); - std::list<art::Thread*> thread_list = art::Runtime::Current()->GetThreadList()->GetList(); - + std::list<art::Thread*> thread_list; + { + art::MutexLock mu(current, *art::Locks::thread_list_lock_); + thread_list = art::Runtime::Current()->GetThreadList()->GetList(); + } std::vector<art::ObjPtr<art::mirror::Object>> peers; for (art::Thread* thread : thread_list) { |