• Home
  • Raw
  • Download

Lines Matching refs:art

68 art::ArtField* ThreadUtil::context_class_loader_ = nullptr;
70 ScopedNoUserCodeSuspension::ScopedNoUserCodeSuspension(art::Thread* self) : self_(self) { in ScopedNoUserCodeSuspension()
71 DCHECK_EQ(self, art::Thread::Current()); in ScopedNoUserCodeSuspension()
75 art::Locks::user_code_suspension_lock_->AssertNotHeld(self_); in ScopedNoUserCodeSuspension()
78 art::Locks::user_code_suspension_lock_->ExclusiveLock(self_); in ScopedNoUserCodeSuspension()
80 art::Locks::user_code_suspension_lock_->ExclusiveUnlock(self_); in ScopedNoUserCodeSuspension()
84 art::Locks::user_code_suspension_lock_->AssertHeld(self_); in ScopedNoUserCodeSuspension()
91 art::Locks::user_code_suspension_lock_->ExclusiveUnlock(self_); in ~ScopedNoUserCodeSuspension()
94 struct ThreadCallback : public art::ThreadLifecycleCallback {
95 jthread GetThreadObject(art::Thread* self) REQUIRES_SHARED(art::Locks::mutator_lock_) { in GetThreadObject()
103 void Post(art::Thread* self) REQUIRES_SHARED(art::Locks::mutator_lock_) { in Post()
104 DCHECK_EQ(self, art::Thread::Current()); in Post()
106 art::ScopedThreadSuspension sts(self, art::ThreadState::kNative); in Post()
112 void ThreadStart(art::Thread* self) override REQUIRES_SHARED(art::Locks::mutator_lock_) { in ThreadStart()
128 if (art::kIsDebugBuild) { in ThreadStart()
132 name != art::metrics::MetricsReporter::kBackgroundThreadName && in ThreadStart()
144 void ThreadDeath(art::Thread* self) override REQUIRES_SHARED(art::Locks::mutator_lock_) { in ThreadDeath()
155 art::Runtime* runtime = art::Runtime::Current(); in Register()
160 art::ScopedThreadStateChange stsc(art::Thread::Current(), in Register()
161 art::ThreadState::kWaitingForDebuggerToAttach); in Register()
162 art::ScopedSuspendAll ssa("Add thread callback"); in Register()
171 gThreadCallback.Post<ArtJvmtiEvent::kThreadStart>(art::Thread::Current()); in VMInitEventSent()
175 static void WaitForSystemDaemonStart(art::Thread* self) REQUIRES_SHARED(art::Locks::mutator_lock_) { in WaitForSystemDaemonStart()
177 art::ScopedThreadStateChange strc(self, art::ThreadState::kNative); in WaitForSystemDaemonStart()
179 jni->CallStaticVoidMethod(art::WellKnownClasses::java_lang_Daemons, in WaitForSystemDaemonStart()
180 art::WellKnownClasses::java_lang_Daemons_waitForDaemonStart); in WaitForSystemDaemonStart()
192 art::Thread* self = art::Thread::Current(); in CacheData()
193 art::ScopedObjectAccess soa(self); in CacheData()
194 art::ObjPtr<art::mirror::Class> thread_class = in CacheData()
195 soa.Decode<art::mirror::Class>(art::WellKnownClasses::java_lang_Thread); in CacheData()
206 art::ScopedThreadStateChange stsc(art::Thread::Current(), in Unregister()
207 art::ThreadState::kWaitingForDebuggerToAttach); in Unregister()
208 art::ScopedSuspendAll ssa("Remove thread callback"); in Unregister()
209 art::Runtime* runtime = art::Runtime::Current(); in Unregister()
214 art::Thread* self = art::Thread::Current(); in GetCurrentThread()
216 art::ScopedObjectAccess soa(self); in GetCurrentThread()
231 const art::ScopedObjectAccessAlreadyRunnable& soa, in GetNativeThread()
232 /*out*/ art::Thread** thr, in GetNativeThread()
234 art::ScopedExceptionStorage sse(soa.Self()); in GetNativeThread()
236 *thr = art::Thread::Current(); in GetNativeThread()
238 } else if (!soa.Env()->IsInstanceOf(thread, art::WellKnownClasses::java_lang_Thread)) { in GetNativeThread()
242 *thr = art::Thread::FromManagedThread(soa, thread); in GetNativeThread()
248 const art::ScopedObjectAccessAlreadyRunnable& soa, in GetAliveNativeThread()
249 /*out*/ art::Thread** thr, in GetAliveNativeThread()
253 } else if (*thr == nullptr || (*thr)->GetState() == art::ThreadState::kTerminated) { in GetAliveNativeThread()
269 art::Thread* self = art::Thread::Current(); in GetThreadInfo()
270 art::ScopedObjectAccess soa(self); in GetThreadInfo()
271 art::MutexLock mu(self, *art::Locks::thread_list_lock_); in GetThreadInfo()
273 art::Thread* target; in GetThreadInfo()
295 art::ObjPtr<art::mirror::Object> peer = target->GetPeerFromOtherThread(); in GetThreadInfo()
299 art::ArtField* f = art::jni::DecodeArtField(art::WellKnownClasses::java_lang_Thread_group); in GetThreadInfo()
301 art::ObjPtr<art::mirror::Object> group = f->GetObject(peer); in GetThreadInfo()
311 art::ObjPtr<art::mirror::Object> ccl = peer != nullptr in GetThreadInfo()
320 art::ObjPtr<art::mirror::Object> peer = soa.Decode<art::mirror::Object>(thread); in GetThreadInfo()
324 art::ArtField* f = art::jni::DecodeArtField(art::WellKnownClasses::java_lang_Thread_name); in GetThreadInfo()
326 art::ObjPtr<art::mirror::Object> name = f->GetObject(peer); in GetThreadInfo()
345 art::ArtField* f = art::jni::DecodeArtField(art::WellKnownClasses::java_lang_Thread_priority); in GetThreadInfo()
352 art::ArtField* f = art::jni::DecodeArtField(art::WellKnownClasses::java_lang_Thread_daemon); in GetThreadInfo()
359 art::ArtField* f = art::jni::DecodeArtField(art::WellKnownClasses::java_lang_Thread_group); in GetThreadInfo()
361 art::ObjPtr<art::mirror::Object> group = f->GetObject(peer); in GetThreadInfo()
369 art::ObjPtr<art::mirror::Object> ccl = peer != nullptr in GetThreadInfo()
383 art::Thread* native_thread;
384 art::ThreadState art_state;
389 static InternalThreadState GetNativeThreadState(art::Thread* target) in GetNativeThreadState()
390 REQUIRES_SHARED(art::Locks::mutator_lock_) in GetNativeThreadState()
391 REQUIRES(art::Locks::thread_list_lock_, art::Locks::user_code_suspension_lock_) { in GetNativeThreadState()
393 art::MutexLock tscl_mu(art::Thread::Current(), *art::Locks::thread_suspend_count_lock_); in GetNativeThreadState()
396 thread_state.art_state = art::ThreadState::kStarting; in GetNativeThreadState()
406 art::ThreadState internal_thread_state = state.art_state; in GetJvmtiThreadStateFromInternal()
425 case art::ThreadState::kRunnable: in GetJvmtiThreadStateFromInternal()
426 case art::ThreadState::kWaitingWeakGcRootRead: in GetJvmtiThreadStateFromInternal()
427 case art::ThreadState::kSuspended: in GetJvmtiThreadStateFromInternal()
436 case art::ThreadState::kNative: in GetJvmtiThreadStateFromInternal()
443 case art::ThreadState::kBlocked: in GetJvmtiThreadStateFromInternal()
447 case art::ThreadState::kWaiting: in GetJvmtiThreadStateFromInternal()
453 case art::ThreadState::kTimedWaiting: in GetJvmtiThreadStateFromInternal()
459 case art::ThreadState::kSleeping: in GetJvmtiThreadStateFromInternal()
467 case art::ThreadState::kWaitingForDebuggerSend: in GetJvmtiThreadStateFromInternal()
468 case art::ThreadState::kWaitingForDebuggerToAttach: in GetJvmtiThreadStateFromInternal()
469 case art::ThreadState::kWaitingInMainDebuggerLoop: in GetJvmtiThreadStateFromInternal()
470 case art::ThreadState::kWaitingForDebuggerSuspension: in GetJvmtiThreadStateFromInternal()
471 case art::ThreadState::kWaitingForLockInflation: in GetJvmtiThreadStateFromInternal()
472 case art::ThreadState::kWaitingForTaskProcessor: in GetJvmtiThreadStateFromInternal()
473 case art::ThreadState::kWaitingForGcToComplete: in GetJvmtiThreadStateFromInternal()
474 case art::ThreadState::kWaitingForCheckPointsToRun: in GetJvmtiThreadStateFromInternal()
475 case art::ThreadState::kWaitingPerformingGc: in GetJvmtiThreadStateFromInternal()
476 case art::ThreadState::kWaitingForJniOnLoad: in GetJvmtiThreadStateFromInternal()
477 case art::ThreadState::kWaitingInMainSignalCatcherLoop: in GetJvmtiThreadStateFromInternal()
478 case art::ThreadState::kWaitingForSignalCatcherOutput: in GetJvmtiThreadStateFromInternal()
479 case art::ThreadState::kWaitingForDeoptimization: in GetJvmtiThreadStateFromInternal()
480 case art::ThreadState::kWaitingForMethodTracingStart: in GetJvmtiThreadStateFromInternal()
481 case art::ThreadState::kWaitingForVisitObjects: in GetJvmtiThreadStateFromInternal()
482 case art::ThreadState::kWaitingForGetObjectsAllocated: in GetJvmtiThreadStateFromInternal()
483 case art::ThreadState::kWaitingForGcThreadFlip: in GetJvmtiThreadStateFromInternal()
484 case art::ThreadState::kNativeForAbort: in GetJvmtiThreadStateFromInternal()
490 case art::ThreadState::kObsoleteRunnable: // Obsolete value. in GetJvmtiThreadStateFromInternal()
491 case art::ThreadState::kStarting: in GetJvmtiThreadStateFromInternal()
492 case art::ThreadState::kTerminated: in GetJvmtiThreadStateFromInternal()
504 case art::ThreadState::kTerminated: in GetJavaStateFromInternal()
507 case art::ThreadState::kRunnable: in GetJavaStateFromInternal()
508 case art::ThreadState::kNative: in GetJavaStateFromInternal()
509 case art::ThreadState::kWaitingWeakGcRootRead: in GetJavaStateFromInternal()
510 case art::ThreadState::kSuspended: in GetJavaStateFromInternal()
513 case art::ThreadState::kTimedWaiting: in GetJavaStateFromInternal()
514 case art::ThreadState::kSleeping: in GetJavaStateFromInternal()
517 case art::ThreadState::kBlocked: in GetJavaStateFromInternal()
520 case art::ThreadState::kStarting: in GetJavaStateFromInternal()
523 case art::ThreadState::kWaiting: in GetJavaStateFromInternal()
524 case art::ThreadState::kWaitingForTaskProcessor: in GetJavaStateFromInternal()
525 case art::ThreadState::kWaitingForLockInflation: in GetJavaStateFromInternal()
526 case art::ThreadState::kWaitingForGcToComplete: in GetJavaStateFromInternal()
527 case art::ThreadState::kWaitingPerformingGc: in GetJavaStateFromInternal()
528 case art::ThreadState::kWaitingForCheckPointsToRun: in GetJavaStateFromInternal()
529 case art::ThreadState::kWaitingForDebuggerSend: in GetJavaStateFromInternal()
530 case art::ThreadState::kWaitingForDebuggerToAttach: in GetJavaStateFromInternal()
531 case art::ThreadState::kWaitingInMainDebuggerLoop: in GetJavaStateFromInternal()
532 case art::ThreadState::kWaitingForDebuggerSuspension: in GetJavaStateFromInternal()
533 case art::ThreadState::kWaitingForDeoptimization: in GetJavaStateFromInternal()
534 case art::ThreadState::kWaitingForGetObjectsAllocated: in GetJavaStateFromInternal()
535 case art::ThreadState::kWaitingForJniOnLoad: in GetJavaStateFromInternal()
536 case art::ThreadState::kWaitingForSignalCatcherOutput: in GetJavaStateFromInternal()
537 case art::ThreadState::kWaitingInMainSignalCatcherLoop: in GetJavaStateFromInternal()
538 case art::ThreadState::kWaitingForMethodTracingStart: in GetJavaStateFromInternal()
539 case art::ThreadState::kWaitingForVisitObjects: in GetJavaStateFromInternal()
540 case art::ThreadState::kWaitingForGcThreadFlip: in GetJavaStateFromInternal()
541 case art::ThreadState::kNativeForAbort: in GetJavaStateFromInternal()
544 case art::ThreadState::kObsoleteRunnable: in GetJavaStateFromInternal()
552 void ThreadUtil::SuspendCheck(art::Thread* self) { in SuspendCheck()
553 art::ScopedObjectAccess soa(self); in SuspendCheck()
558 bool ThreadUtil::WouldSuspendForUserCodeLocked(art::Thread* self) { in WouldSuspendForUserCodeLocked()
559 DCHECK(self == art::Thread::Current()); in WouldSuspendForUserCodeLocked()
560 art::MutexLock tscl_mu(self, *art::Locks::thread_suspend_count_lock_); in WouldSuspendForUserCodeLocked()
564 bool ThreadUtil::WouldSuspendForUserCode(art::Thread* self) { in WouldSuspendForUserCode()
565 DCHECK(self == art::Thread::Current()); in WouldSuspendForUserCode()
566 art::MutexLock ucsl_mu(self, *art::Locks::user_code_suspension_lock_); in WouldSuspendForUserCode()
577 art::Thread* self = art::Thread::Current(); in GetThreadState()
581 art::ScopedObjectAccess soa(self); in GetThreadState()
582 art::MutexLock tll_mu(self, *art::Locks::thread_list_lock_); in GetThreadState()
584 art::Thread* target = nullptr; in GetThreadState()
589 if (state.art_state != art::ThreadState::kStarting) { in GetThreadState()
607 DCHECK_EQ(state.art_state, art::ThreadState::kStarting); in GetThreadState()
614 art::ScopedObjectAccess soa(self); in GetThreadState()
615 art::StackHandleScope<1> hs(self); in GetThreadState()
618 art::Handle<art::mirror::Object> peer(hs.NewHandle(soa.Decode<art::mirror::Object>(thread))); in GetThreadState()
619 art::ObjPtr<art::mirror::Class> thread_klass = in GetThreadState()
620 soa.Decode<art::mirror::Class>(art::WellKnownClasses::java_lang_Thread); in GetThreadState()
624 art::ArtField* started_field = thread_klass->FindDeclaredInstanceField("started", "Z"); in GetThreadState()
641 art::Thread* current = art::Thread::Current(); in GetAllThreads()
643 art::ScopedObjectAccess soa(current); in GetAllThreads()
645 art::MutexLock mu(current, *art::Locks::thread_list_lock_); in GetAllThreads()
646 std::list<art::Thread*> thread_list = art::Runtime::Current()->GetThreadList()->GetList(); in GetAllThreads()
648 std::vector<art::ObjPtr<art::mirror::Object>> peers; in GetAllThreads()
650 for (art::Thread* thread : thread_list) { in GetAllThreads()
656 art::ObjPtr<art::mirror::Object> peer = thread->GetPeerFromOtherThread(); in GetAllThreads()
682 static void RemoveTLSData(art::Thread* target, void* ctx) REQUIRES(art::Locks::thread_list_lock_) { in RemoveTLSData()
684 art::Locks::thread_list_lock_->AssertHeld(art::Thread::Current()); in RemoveTLSData()
692 art::Thread* self = art::Thread::Current(); in RemoveEnvironment()
693 art::MutexLock mu(self, *art::Locks::thread_list_lock_); in RemoveEnvironment()
694 art::ThreadList* list = art::Runtime::Current()->GetThreadList(); in RemoveEnvironment()
699 art::Thread* self = art::Thread::Current(); in SetThreadLocalStorage()
700 art::ScopedObjectAccess soa(self); in SetThreadLocalStorage()
701 art::MutexLock mu(self, *art::Locks::thread_list_lock_); in SetThreadLocalStorage()
702 art::Thread* target = nullptr; in SetThreadLocalStorage()
715 JvmtiGlobalTLSData* ThreadUtil::GetOrCreateGlobalTLSData(art::Thread* thread) { in GetOrCreateGlobalTLSData()
725 JvmtiGlobalTLSData* ThreadUtil::GetGlobalTLSData(art::Thread* thread) { in GetGlobalTLSData()
736 art::Thread* self = art::Thread::Current(); in GetThreadLocalStorage()
737 art::ScopedObjectAccess soa(self); in GetThreadLocalStorage()
738 art::MutexLock mu(self, *art::Locks::thread_list_lock_); in GetThreadLocalStorage()
739 art::Thread* target = nullptr; in GetThreadLocalStorage()
775 art::Thread* self = art::Thread::Attach(data->name.c_str(), true, data->thread); in AgentCallback()
780 art::ScopedObjectAccess soa(self); in AgentCallback()
792 art::MutexLock mu(art::Thread::Current(), *art::Locks::runtime_shutdown_lock_); in AgentCallback()
793 art::Runtime::Current()->EndThreadBirth(); in AgentCallback()
817 JNIEnv* env = art::Thread::Current()->GetJniEnv(); in RunAgentThread()
818 if (thread == nullptr || !env->IsInstanceOf(thread, art::WellKnownClasses::java_lang_Thread)) { in RunAgentThread()
826 art::Runtime* runtime = art::Runtime::Current(); in RunAgentThread()
827 art::MutexLock mu(art::Thread::Current(), *art::Locks::runtime_shutdown_lock_); in RunAgentThread()
845 data->java_vm = art::Runtime::Current()->GetJavaVM(); in RunAgentThread()
851 env->GetObjectField(thread, art::WellKnownClasses::java_lang_Thread_name))); in RunAgentThread()
866 art::Runtime* runtime = art::Runtime::Current(); in RunAgentThread()
867 art::MutexLock mu(art::Thread::Current(), *art::Locks::runtime_shutdown_lock_); in RunAgentThread()
876 jvmtiError ThreadUtil::SuspendOther(art::Thread* self, in SuspendOther()
885 art::ScopedObjectAccess soa(self); in SuspendOther()
886 art::MutexLock thread_list_mu(self, *art::Locks::thread_list_lock_); in SuspendOther()
887 art::Thread* target = nullptr; in SuspendOther()
892 art::ThreadState state = target->GetState(); in SuspendOther()
893 if (state == art::ThreadState::kStarting || target->IsStillStarting()) { in SuspendOther()
896 art::MutexLock thread_suspend_count_mu(self, *art::Locks::thread_suspend_count_lock_); in SuspendOther()
903 art::Thread* ret_target = art::Runtime::Current()->GetThreadList()->SuspendThreadByPeer( in SuspendOther()
905 art::SuspendReason::kForUserCode, in SuspendOther()
920 jvmtiError ThreadUtil::SuspendSelf(art::Thread* self) { in SuspendSelf()
921 CHECK(self == art::Thread::Current()); in SuspendSelf()
923 art::MutexLock mu(self, *art::Locks::user_code_suspension_lock_); in SuspendSelf()
924 art::MutexLock thread_list_mu(self, *art::Locks::thread_suspend_count_lock_); in SuspendSelf()
930 if (!self->ModifySuspendCount(self, +1, nullptr, art::SuspendReason::kForUserCode)) { in SuspendSelf()
943 art::Thread* self = art::Thread::Current(); in SuspendThread()
946 art::ScopedObjectAccess soa(self); in SuspendThread()
947 art::MutexLock mu(self, *art::Locks::thread_list_lock_); in SuspendThread()
948 art::Thread* target = nullptr; in SuspendThread()
968 art::Thread* self = art::Thread::Current(); in ResumeThread()
969 art::Thread* target; in ResumeThread()
977 art::ScopedObjectAccess soa(self); in ResumeThread()
978 art::MutexLock tll_mu(self, *art::Locks::thread_list_lock_); in ResumeThread()
991 art::MutexLock thread_suspend_count_mu(self, *art::Locks::thread_suspend_count_lock_); in ResumeThread()
1000 if (!art::Runtime::Current()->GetThreadList()->Resume(target, in ResumeThread()
1001 art::SuspendReason::kForUserCode)) { in ResumeThread()
1014 art::Thread* self = art::Thread::Current(); in IsCurrentThread()
1015 art::ScopedObjectAccess soa(self); in IsCurrentThread()
1016 art::MutexLock mu(self, *art::Locks::thread_list_lock_); in IsCurrentThread()
1017 art::Thread* target = nullptr; in IsCurrentThread()
1084 art::Thread* self = art::Thread::Current(); in StopThread()
1085 art::ScopedObjectAccess soa(self); in StopThread()
1086 art::StackHandleScope<1> hs(self); in StopThread()
1090 art::ObjPtr<art::mirror::Object> obj(soa.Decode<art::mirror::Object>(exception)); in StopThread()
1094 art::Handle<art::mirror::Throwable> exc(hs.NewHandle(obj->AsThrowable())); in StopThread()
1095 art::Locks::thread_list_lock_->ExclusiveLock(self); in StopThread()
1096 art::Thread* target = nullptr; in StopThread()
1099 art::Locks::thread_list_lock_->ExclusiveUnlock(self); in StopThread()
1101 } else if (target->GetState() == art::ThreadState::kStarting || target->IsStillStarting()) { in StopThread()
1102 art::Locks::thread_list_lock_->ExclusiveUnlock(self); in StopThread()
1105 struct StopThreadClosure : public art::Closure { in StopThread()
1107 explicit StopThreadClosure(art::Handle<art::mirror::Throwable> except) : exception_(except) { } in StopThread()
1109 void Run(art::Thread* me) override REQUIRES_SHARED(art::Locks::mutator_lock_) { in StopThread()
1118 art::Handle<art::mirror::Throwable> exception_; in StopThread()
1131 art::Thread* self = art::Thread::Current(); in InterruptThread()
1132 art::ScopedObjectAccess soa(self); in InterruptThread()
1133 art::MutexLock tll_mu(self, *art::Locks::thread_list_lock_); in InterruptThread()
1134 art::Thread* target = nullptr; in InterruptThread()
1138 } else if (target->GetState() == art::ThreadState::kStarting || target->IsStillStarting()) { in InterruptThread()