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 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); |