diff options
author | 2016-03-15 15:07:54 -0700 | |
---|---|---|
committer | 2016-03-15 15:21:21 -0700 | |
commit | e07e3e5ef56b768d73e78fb273f2cfe6ebffc945 (patch) | |
tree | 5389063fd296967d34389f32cbba367f3b7a34cb /libs/gui/ConsumerBase.cpp | |
parent | 5229d8f558dfa7d91037321dcf26fbc1131df15a (diff) |
Revert "Add a callback thread to ConsumerBase"
This reverts commit 22b5702b40eca423171124e69c3d4ad03a3e6900.
Bug 27557176
Change-Id: Icc0e79af82329e6414ed44a99e90631cfcf140fa
Diffstat (limited to 'libs/gui/ConsumerBase.cpp')
-rw-r--r-- | libs/gui/ConsumerBase.cpp | 78 |
1 files changed, 1 insertions, 77 deletions
diff --git a/libs/gui/ConsumerBase.cpp b/libs/gui/ConsumerBase.cpp index 8e26ac842c..2187e5e8eb 100644 --- a/libs/gui/ConsumerBase.cpp +++ b/libs/gui/ConsumerBase.cpp @@ -74,26 +74,12 @@ ConsumerBase::ConsumerBase(const sp<IGraphicBufferConsumer>& bufferQueue, bool c } else { mConsumer->setConsumerName(mName); } - - mMessageThread = new MessageThread(this); - mMessageThread->run(mName); } ConsumerBase::~ConsumerBase() { CB_LOGV("~ConsumerBase"); - - mMessageThread->requestExit(); - { - Mutex::Autolock lock(mMessageQueueLock); - mMessageQueue.emplace(std::piecewise_construct, - std::forward_as_tuple(EXIT), - std::forward_as_tuple()); - mMessageAvailable.signal(); - } - - mMessageThread->join(); - Mutex::Autolock lock(mMutex); + // Verify that abandon() has been called before we get here. This should // be done by ConsumerBase::onLastStrongRef(), but it's possible for a // derived class to override that method and not call @@ -114,13 +100,6 @@ void ConsumerBase::freeBufferLocked(int slotIndex) { } void ConsumerBase::onFrameAvailable(const BufferItem& item) { - Mutex::Autolock lock(mMessageQueueLock); - mMessageQueue.emplace(std::piecewise_construct, - std::forward_as_tuple(ON_FRAME_AVAILABLE), - std::forward_as_tuple(item)); - mMessageAvailable.signal(); -} -void ConsumerBase::onFrameAvailableHandler(const BufferItem& item) { CB_LOGV("onFrameAvailable"); sp<FrameAvailableListener> listener; @@ -136,14 +115,6 @@ void ConsumerBase::onFrameAvailableHandler(const BufferItem& item) { } void ConsumerBase::onFrameReplaced(const BufferItem &item) { - Mutex::Autolock lock(mMessageQueueLock); - mMessageQueue.emplace(std::piecewise_construct, - std::forward_as_tuple(ON_FRAME_REPLACED), - std::forward_as_tuple(item)); - mMessageAvailable.signal(); -} - -void ConsumerBase::onFrameReplacedHandler(const BufferItem &item) { CB_LOGV("onFrameReplaced"); sp<FrameAvailableListener> listener; @@ -159,14 +130,6 @@ void ConsumerBase::onFrameReplacedHandler(const BufferItem &item) { } void ConsumerBase::onBuffersReleased() { - Mutex::Autolock lock(mMessageQueueLock); - mMessageQueue.emplace(std::piecewise_construct, - std::forward_as_tuple(ON_BUFFERS_RELEASED), - std::forward_as_tuple()); - mMessageAvailable.signal(); -} - -void ConsumerBase::onBuffersReleasedHandler() { Mutex::Autolock lock(mMutex); CB_LOGV("onBuffersReleased"); @@ -186,45 +149,6 @@ void ConsumerBase::onBuffersReleasedHandler() { } void ConsumerBase::onSidebandStreamChanged() { - Mutex::Autolock lock(mMessageQueueLock); - mMessageQueue.emplace(std::piecewise_construct, - std::forward_as_tuple(ON_SIDEBAND_STREAM_CHANGED), - std::forward_as_tuple()); - mMessageAvailable.signal(); -} - -void ConsumerBase::onSidebandStreamChangedHandler() { -} - -bool ConsumerBase::MessageThread::threadLoop() { - Mutex::Autolock lock(mConsumerBase->mMessageQueueLock); - - if (mConsumerBase->mMessageQueue.empty()) { - mConsumerBase->mMessageAvailable.wait(mConsumerBase->mMessageQueueLock); - } - - while (!mConsumerBase->mMessageQueue.empty()) { - auto nextMessage = mConsumerBase->mMessageQueue.front(); - - switch (nextMessage.first) { - case ON_FRAME_AVAILABLE: - mConsumerBase->onFrameAvailableHandler(nextMessage.second); - break; - case ON_FRAME_REPLACED: - mConsumerBase->onFrameReplacedHandler(nextMessage.second); - break; - case ON_BUFFERS_RELEASED: - mConsumerBase->onBuffersReleasedHandler(); - break; - case ON_SIDEBAND_STREAM_CHANGED: - mConsumerBase->onSidebandStreamChangedHandler(); - break; - case EXIT: - break; - } - mConsumerBase->mMessageQueue.pop(); - } - return true; } void ConsumerBase::abandon() { |