Loading include/utils/threads.h +3 −0 Original line number Diff line number Diff line Loading @@ -408,6 +408,9 @@ private: volatile bool mExitPending; volatile bool mRunning; sp<Thread> mHoldSelf; #if HAVE_ANDROID_OS int mTid; #endif }; Loading libs/utils/Threads.cpp +7 −2 Original line number Diff line number Diff line Loading @@ -655,6 +655,11 @@ int Thread::_threadLoop(void* user) wp<Thread> weak(strong); self->mHoldSelf.clear(); #if HAVE_ANDROID_OS // this is very useful for debugging with gdb self->mTid = gettid(); #endif bool first = true; do { Loading Loading @@ -685,7 +690,7 @@ int Thread::_threadLoop(void* user) self->mExitPending = true; self->mLock.lock(); self->mRunning = false; self->mThreadExitedCondition.signal(); self->mThreadExitedCondition.broadcast(); self->mLock.unlock(); break; } Loading @@ -693,7 +698,7 @@ int Thread::_threadLoop(void* user) // Release our strong reference, to let a chance to the thread // to die a peaceful death. strong.clear(); // And immediately, reacquire a strong reference for the next loop // And immediately, re-acquire a strong reference for the next loop strong = weak.promote(); } while(strong != 0); Loading Loading
include/utils/threads.h +3 −0 Original line number Diff line number Diff line Loading @@ -408,6 +408,9 @@ private: volatile bool mExitPending; volatile bool mRunning; sp<Thread> mHoldSelf; #if HAVE_ANDROID_OS int mTid; #endif }; Loading
libs/utils/Threads.cpp +7 −2 Original line number Diff line number Diff line Loading @@ -655,6 +655,11 @@ int Thread::_threadLoop(void* user) wp<Thread> weak(strong); self->mHoldSelf.clear(); #if HAVE_ANDROID_OS // this is very useful for debugging with gdb self->mTid = gettid(); #endif bool first = true; do { Loading Loading @@ -685,7 +690,7 @@ int Thread::_threadLoop(void* user) self->mExitPending = true; self->mLock.lock(); self->mRunning = false; self->mThreadExitedCondition.signal(); self->mThreadExitedCondition.broadcast(); self->mLock.unlock(); break; } Loading @@ -693,7 +698,7 @@ int Thread::_threadLoop(void* user) // Release our strong reference, to let a chance to the thread // to die a peaceful death. strong.clear(); // And immediately, reacquire a strong reference for the next loop // And immediately, re-acquire a strong reference for the next loop strong = weak.promote(); } while(strong != 0); Loading