From 738ec3aace180018560998d1c2cdeb9ddde5fbfa Mon Sep 17 00:00:00 2001 From: Chris Craik Date: Fri, 25 Jul 2014 18:25:02 +0000 Subject: [PATCH] Revert "Dump RenderThread stack on unresponsive" bug:16563871 bug:16565900 bug:16555847 bug:16551643 This reverts commit ca66e06b9db6e6c921662886e4b7ddd02ac92280. Change-Id: I23e8d4eaf828b1b298126ba5f36e4e8e7451706a --- libs/hwui/renderthread/DrawFrameTask.cpp | 3 ++- libs/hwui/renderthread/RenderProxy.cpp | 3 ++- libs/hwui/renderthread/RenderThread.cpp | 17 ----------------- libs/hwui/renderthread/RenderThread.h | 6 ------ 4 files changed, 4 insertions(+), 25 deletions(-) diff --git a/libs/hwui/renderthread/DrawFrameTask.cpp b/libs/hwui/renderthread/DrawFrameTask.cpp index 763e72747e830..dd34e095738d4 100644 --- a/libs/hwui/renderthread/DrawFrameTask.cpp +++ b/libs/hwui/renderthread/DrawFrameTask.cpp @@ -85,7 +85,8 @@ int DrawFrameTask::drawFrame(nsecs_t frameTimeNanos, nsecs_t recordDurationNanos void DrawFrameTask::postAndWait() { AutoMutex _lock(mLock); - mRenderThread->queueAndWait(this, mSignal, mLock); + mRenderThread->queue(this); + mSignal.wait(mLock); } void DrawFrameTask::run() { diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp index 1e91eb541047b..3f030936185e6 100644 --- a/libs/hwui/renderthread/RenderProxy.cpp +++ b/libs/hwui/renderthread/RenderProxy.cpp @@ -412,7 +412,8 @@ void* RenderProxy::postAndWait(MethodInvokeRenderTask* task) { task->setReturnPtr(&retval); SignalingRenderTask syncTask(task, &mSyncMutex, &mSyncCondition); AutoMutex _lock(mSyncMutex); - mRenderThread.queueAndWait(&syncTask, mSyncCondition, mSyncMutex); + mRenderThread.queue(&syncTask); + mSyncCondition.wait(mSyncMutex); return retval; } diff --git a/libs/hwui/renderthread/RenderThread.cpp b/libs/hwui/renderthread/RenderThread.cpp index 32dc46ee57ebc..03e98d5b2f03b 100644 --- a/libs/hwui/renderthread/RenderThread.cpp +++ b/libs/hwui/renderthread/RenderThread.cpp @@ -20,7 +20,6 @@ #include #include -#include #include "../RenderState.h" #include "CanvasContext.h" @@ -137,7 +136,6 @@ public: }; RenderThread::RenderThread() : Thread(true), Singleton() - , mThreadId(0) , mNextWakeup(LLONG_MAX) , mDisplayEventReceiver(0) , mVsyncRequested(false) @@ -246,7 +244,6 @@ void RenderThread::requestVsync() { } bool RenderThread::threadLoop() { - mThreadId = pthread_self(); initThreadLocals(); int timeoutMillis = -1; @@ -292,16 +289,6 @@ void RenderThread::queue(RenderTask* task) { } } -void RenderThread::queueAndWait(RenderTask* task, Condition& signal, Mutex& lock) { - static nsecs_t sTimeout = milliseconds(500); - queue(task); - status_t err = signal.waitRelative(lock, sTimeout); - if (CC_UNLIKELY(err != NO_ERROR)) { - ALOGE("Timeout waiting for RenderTherad! err=%d", err); - nukeFromOrbit(); - } -} - void RenderThread::queueAtFront(RenderTask* task) { AutoMutex _lock(mLock); mQueue.queueAtFront(task); @@ -354,10 +341,6 @@ RenderTask* RenderThread::nextTask(nsecs_t* nextWakeup) { return next; } -void RenderThread::nukeFromOrbit() { - pthread_kill(mThreadId, SIGABRT); -} - } /* namespace renderthread */ } /* namespace uirenderer */ } /* namespace android */ diff --git a/libs/hwui/renderthread/RenderThread.h b/libs/hwui/renderthread/RenderThread.h index 59843736f0486..0b91e9dd97aad 100644 --- a/libs/hwui/renderthread/RenderThread.h +++ b/libs/hwui/renderthread/RenderThread.h @@ -23,7 +23,6 @@ #include #include -#include #include #include #include @@ -74,7 +73,6 @@ public: // RenderThread takes complete ownership of tasks that are queued // and will delete them after they are run ANDROID_API void queue(RenderTask* task); - void queueAndWait(RenderTask* task, Condition& signal, Mutex& lock); ANDROID_API void queueAtFront(RenderTask* task); void queueDelayed(RenderTask* task, int delayMs); void remove(RenderTask* task); @@ -108,15 +106,11 @@ private: void dispatchFrameCallbacks(); void requestVsync(); - // VERY DANGEROUS HANDLE WITH EXTREME CARE - void nukeFromOrbit(); - // Returns the next task to be run. If this returns NULL nextWakeup is set // to the time to requery for the nextTask to run. mNextWakeup is also // set to this time RenderTask* nextTask(nsecs_t* nextWakeup); - pthread_t mThreadId; sp mLooper; Mutex mLock;