summaryrefslogtreecommitdiff
path: root/openjdkjvmti/ti_thread.cc
diff options
context:
space:
mode:
Diffstat (limited to 'openjdkjvmti/ti_thread.cc')
-rw-r--r--openjdkjvmti/ti_thread.cc18
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) {