summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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 bca343079..0b1199c2d 100644
--- a/services/surfaceflinger/MessageQueue.cpp
+++ b/services/surfaceflinger/MessageQueue.cpp
@@ -91,6 +91,14 @@ void MessageQueue::init(const sp<SurfaceFlinger>& flinger)
91 91
92void MessageQueue::setEventThread(const sp<EventThread>& eventThread) 92void MessageQueue::setEventThread(const sp<EventThread>& eventThread)
93{ 93{
94 if (mEventThread == eventThread) {
95 return;
96 }
97
98 if (mEventTube.getFd() >= 0) {
99 mLooper->removeFd(mEventTube.getFd());
100 }
101
94 mEventThread = eventThread; 102 mEventThread = eventThread;
95 mEvents = eventThread->createEventConnection(); 103 mEvents = eventThread->createEventConnection();
96 mEvents->stealReceiveChannel(&mEventTube); 104 mEvents->stealReceiveChannel(&mEventTube);