summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/MessageQueue.cpp
diff options
context:
space:
mode:
author Chia-I Wu <olv@google.com> 2017-10-31 19:07:15 +0000
committer android-build-merger <android-build-merger@google.com> 2017-10-31 19:07:15 +0000
commit2f5bd001333b331894690bf6dbc2068000703a44 (patch)
tree3e3c9c89d1c848a306d29d07ca173bf22d7072a3 /services/surfaceflinger/MessageQueue.cpp
parent1dbadb9c8075785189a1e032168333e4d43db632 (diff)
parent3c192d059e2c1e5fc47812091dcf276f25f24f2c (diff)
surfaceflinger: make vsync injection more robust am: 6200eacdc9 am: ffbf2d94a1
am: 3c192d059e Change-Id: I229ea69baff9295ace1495111640eca1222486c8
Diffstat (limited to 'services/surfaceflinger/MessageQueue.cpp')
-rw-r--r--services/surfaceflinger/MessageQueue.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/services/surfaceflinger/MessageQueue.cpp b/services/surfaceflinger/MessageQueue.cpp
index bca3430794..0b1199c2d0 100644
--- a/services/surfaceflinger/MessageQueue.cpp
+++ b/services/surfaceflinger/MessageQueue.cpp
@@ -91,6 +91,14 @@ void MessageQueue::init(const sp<SurfaceFlinger>& flinger)
void MessageQueue::setEventThread(const sp<EventThread>& eventThread)
{
+ if (mEventThread == eventThread) {
+ return;
+ }
+
+ if (mEventTube.getFd() >= 0) {
+ mLooper->removeFd(mEventTube.getFd());
+ }
+
mEventThread = eventThread;
mEvents = eventThread->createEventConnection();
mEvents->stealReceiveChannel(&mEventTube);