summaryrefslogtreecommitdiff
path: root/libs/gui/ConsumerBase.cpp
diff options
context:
space:
mode:
author Jim Shargo <jshargo@google.com> 2025-03-11 08:29:40 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2025-03-11 08:29:40 -0700
commit6075c6ae67546cc2143f336b800d5bb6f46acfd7 (patch)
treec16308e626f62cf930973193b0569da6a17a4f3c /libs/gui/ConsumerBase.cpp
parent269580ec3dcd89ed86b4bacfb7871cc2bcb0afbb (diff)
parentf3b0012530f719f7988711bb474235e6f25ebee9 (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.cpp6
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) {