Merge "Hold mMutex lock and check abandoned when accessing mLayer" into rvc-dev

This commit is contained in:
Chavi Weingarten 2020-05-28 00:16:11 +00:00 committed by Android (Google) Code Review
commit a38a3e145a
2 changed files with 16 additions and 2 deletions

View file

@ -452,6 +452,13 @@ void BufferLayerConsumer::freeBufferLocked(int slotIndex) {
}
void BufferLayerConsumer::onDisconnect() {
Mutex::Autolock lock(mMutex);
if (mAbandoned) {
// Nothing to do if we're already abandoned.
return;
}
mLayer->onDisconnect();
}
@ -486,6 +493,13 @@ void BufferLayerConsumer::onBufferAvailable(const BufferItem& item) {
void BufferLayerConsumer::addAndGetFrameTimestamps(const NewFrameEventsEntry* newTimestamps,
FrameEventHistoryDelta* outDelta) {
Mutex::Autolock lock(mMutex);
if (mAbandoned) {
// Nothing to do if we're already abandoned.
return;
}
mLayer->addAndGetFrameTimestamps(newTimestamps, outDelta);
}

View file

@ -331,8 +331,8 @@ private:
// construction time.
const uint32_t mTexName;
// The layer for this BufferLayerConsumer
Layer* mLayer;
// The layer for this BufferLayerConsumer. Always check mAbandoned before accessing.
Layer* mLayer GUARDED_BY(mMutex);
wp<ContentsChangedListener> mContentsChangedListener;