diff options
author | Rick Yiu <rickyiu@google.com> | 2020-01-08 16:02:00 +0800 |
---|---|---|
committer | Rick Yiu <rickyiu@google.com> | 2020-01-17 13:32:51 +0000 |
commit | e30457c0b52caba839b21a03af56200df7a975e2 (patch) | |
tree | 5f7dcb277f6c62c7dafa9f99346e4f4b80b9b466 /runtime/native/java_lang_Thread.cc | |
parent | a72256b2b9cb32ead8bdf06c7d6546eb01ef4229 (diff) |
Add getNativeTid function
Add a function to get native thread id for java Thread.
Bug: 139521784
Test: CtsLibcoreTestCases, device boot to home, thread priority set
as expected.
Change-Id: Ic13c1380374044754f007136666dc0928ce1f143
Diffstat (limited to 'runtime/native/java_lang_Thread.cc')
-rw-r--r-- | runtime/native/java_lang_Thread.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/runtime/native/java_lang_Thread.cc b/runtime/native/java_lang_Thread.cc index 37b3fe642e..5f21998998 100644 --- a/runtime/native/java_lang_Thread.cc +++ b/runtime/native/java_lang_Thread.cc @@ -112,6 +112,13 @@ static jint Thread_nativeGetStatus(JNIEnv* env, jobject java_thread, jboolean ha return -1; // Unreachable. } +static jint Thread_getNativeTid(JNIEnv* env, jobject java_thread) { + ScopedFastNativeObjectAccess soa(env); + MutexLock mu(soa.Self(), *Locks::thread_list_lock_); + Thread* thread = Thread::FromManagedThread(soa, java_thread); + return (thread != nullptr) ? thread->GetTid() : 0; +} + static jboolean Thread_holdsLock(JNIEnv* env, jclass, jobject java_object) { ScopedObjectAccess soa(env); ObjPtr<mirror::Object> object = soa.Decode<mirror::Object>(java_object); @@ -198,6 +205,7 @@ static JNINativeMethod gMethods[] = { FAST_NATIVE_METHOD(Thread, currentThread, "()Ljava/lang/Thread;"), FAST_NATIVE_METHOD(Thread, interrupted, "()Z"), FAST_NATIVE_METHOD(Thread, isInterrupted, "()Z"), + FAST_NATIVE_METHOD(Thread, getNativeTid, "()I"), NATIVE_METHOD(Thread, nativeCreate, "(Ljava/lang/Thread;JZ)V"), NATIVE_METHOD(Thread, nativeGetStatus, "(Z)I"), NATIVE_METHOD(Thread, holdsLock, "(Ljava/lang/Object;)Z"), |