diff options
Diffstat (limited to 'services/surfaceflinger/MessageQueue.cpp')
-rw-r--r-- | services/surfaceflinger/MessageQueue.cpp | 8 |
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 | ||
92 | void MessageQueue::setEventThread(const sp<EventThread>& eventThread) | 92 | void 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); |