Loading libs/hwui/renderthread/RenderProxy.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -685,7 +685,9 @@ void* RenderProxy::postAndWait(MethodInvokeRenderTask* task) { SignalingRenderTask syncTask(task, &mSyncMutex, &mSyncCondition); AutoMutex _lock(mSyncMutex); mRenderThread.queue(&syncTask); while (!syncTask.hasRun()) { mSyncCondition.wait(mSyncMutex); } return retval; } Loading libs/hwui/renderthread/RenderTask.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ namespace renderthread { void SignalingRenderTask::run() { mTask->run(); mLock->lock(); mHasRun = true; mSignal->signal(); mLock->unlock(); } Loading libs/hwui/renderthread/RenderTask.h +3 −1 Original line number Diff line number Diff line Loading @@ -60,13 +60,15 @@ class SignalingRenderTask : public RenderTask { public: // Takes ownership of task, caller owns lock and signal SignalingRenderTask(RenderTask* task, Mutex* lock, Condition* signal) : mTask(task), mLock(lock), mSignal(signal) {} : mTask(task), mLock(lock), mSignal(signal), mHasRun(false) {} virtual void run() override; bool hasRun() const { return mHasRun; } private: RenderTask* mTask; Mutex* mLock; Condition* mSignal; bool mHasRun; }; typedef void* (*RunnableMethod)(void* data); Loading libs/hwui/renderthread/RenderThread.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -345,8 +345,10 @@ void RenderThread::queueAndWait(RenderTask* task) { AutoMutex _lock(mutex); queue(&syncTask); while (!syncTask.hasRun()) { condition.wait(mutex); } } void RenderThread::queueAtFront(RenderTask* task) { AutoMutex _lock(mLock); Loading Loading
libs/hwui/renderthread/RenderProxy.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -685,7 +685,9 @@ void* RenderProxy::postAndWait(MethodInvokeRenderTask* task) { SignalingRenderTask syncTask(task, &mSyncMutex, &mSyncCondition); AutoMutex _lock(mSyncMutex); mRenderThread.queue(&syncTask); while (!syncTask.hasRun()) { mSyncCondition.wait(mSyncMutex); } return retval; } Loading
libs/hwui/renderthread/RenderTask.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ namespace renderthread { void SignalingRenderTask::run() { mTask->run(); mLock->lock(); mHasRun = true; mSignal->signal(); mLock->unlock(); } Loading
libs/hwui/renderthread/RenderTask.h +3 −1 Original line number Diff line number Diff line Loading @@ -60,13 +60,15 @@ class SignalingRenderTask : public RenderTask { public: // Takes ownership of task, caller owns lock and signal SignalingRenderTask(RenderTask* task, Mutex* lock, Condition* signal) : mTask(task), mLock(lock), mSignal(signal) {} : mTask(task), mLock(lock), mSignal(signal), mHasRun(false) {} virtual void run() override; bool hasRun() const { return mHasRun; } private: RenderTask* mTask; Mutex* mLock; Condition* mSignal; bool mHasRun; }; typedef void* (*RunnableMethod)(void* data); Loading
libs/hwui/renderthread/RenderThread.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -345,8 +345,10 @@ void RenderThread::queueAndWait(RenderTask* task) { AutoMutex _lock(mutex); queue(&syncTask); while (!syncTask.hasRun()) { condition.wait(mutex); } } void RenderThread::queueAtFront(RenderTask* task) { AutoMutex _lock(mLock); Loading