OSDN Git Service

compositor thread: adding corner case check before wait in Draw.
authorYuanjun Huang <yuanjun.huang@intel.com>
Fri, 4 May 2018 08:09:11 +0000 (16:09 +0800)
committerKalyan Kondapally <kalyan.kondapally@intel.com>
Tue, 15 May 2018 09:05:38 +0000 (02:05 -0700)
Adding the check to avoid compositor thread not responsing in some
corner case and leads to UIWDT that found in android stability test.

Jira: https://jira01.devtools.intel.com/browse/OAM-61985
Test: stability test

Signed-off-by: Yuanjun Huang <yuanjun.huang@intel.com>
common/compositor/compositorthread.cpp

index e7d0e9a..eddd83e 100644 (file)
@@ -103,6 +103,13 @@ bool CompositorThread::Draw(std::vector<DrawState> &states,
   // succeed.
   draw_succeeded_ = true;
   tasks_lock_.unlock();
+
+  // Adding check to avoid waiting in this
+  // thread in certain corner case.
+  if (states_.empty() && media_states_.empty()) {
+    return draw_succeeded_;
+  }
+
   Resume();
   Wait();
   return draw_succeeded_;