Dump RenderThread stack on unresponsive
Bug: 16408405
Change-Id: I4ba4836fd1451fb8ba77c34cdb843d3cb4217bb8
diff --git a/libs/hwui/renderthread/RenderThread.h b/libs/hwui/renderthread/RenderThread.h
index 0b91e9d..5984373 100644
--- a/libs/hwui/renderthread/RenderThread.h
+++ b/libs/hwui/renderthread/RenderThread.h
@@ -23,6 +23,7 @@
#include <set>
#include <cutils/compiler.h>
+#include <utils/Condition.h>
#include <utils/Looper.h>
#include <utils/Mutex.h>
#include <utils/Singleton.h>
@@ -73,6 +74,7 @@
// 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);
@@ -106,11 +108,15 @@
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<Looper> mLooper;
Mutex mLock;