diff options
author | 2025-03-11 08:29:40 -0700 | |
---|---|---|
committer | 2025-03-11 08:29:40 -0700 | |
commit | 6075c6ae67546cc2143f336b800d5bb6f46acfd7 (patch) | |
tree | c16308e626f62cf930973193b0569da6a17a4f3c /libs/gui/ConsumerBase.cpp | |
parent | 269580ec3dcd89ed86b4bacfb7871cc2bcb0afbb (diff) | |
parent | f3b0012530f719f7988711bb474235e6f25ebee9 (diff) |
Merge changes I13283720,Iddd8f902 into main
* changes:
BufferItemConsumer: Add/expose methods
BufferQueue: Fix deadlock in setMaxAcquiredBufferCount
Diffstat (limited to 'libs/gui/ConsumerBase.cpp')
-rw-r--r-- | libs/gui/ConsumerBase.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libs/gui/ConsumerBase.cpp b/libs/gui/ConsumerBase.cpp index 117a362661..5b89c6e17e 100644 --- a/libs/gui/ConsumerBase.cpp +++ b/libs/gui/ConsumerBase.cpp @@ -264,7 +264,10 @@ void ConsumerBase::onFrameReplaced(const BufferItem &item) { void ConsumerBase::onBuffersReleased() { Mutex::Autolock lock(mMutex); + onBuffersReleasedLocked(); +} +void ConsumerBase::onBuffersReleasedLocked() { CB_LOGV("onBuffersReleased"); if (mAbandoned) { @@ -481,7 +484,8 @@ status_t ConsumerBase::setMaxAcquiredBufferCount(int maxAcquiredBuffers) { CB_LOGE("setMaxAcquiredBufferCount: ConsumerBase is abandoned!"); return NO_INIT; } - return mConsumer->setMaxAcquiredBufferCount(maxAcquiredBuffers); + return mConsumer->setMaxAcquiredBufferCount(maxAcquiredBuffers, + {[this]() { onBuffersReleasedLocked(); }}); } status_t ConsumerBase::setConsumerIsProtected(bool isProtected) { |