Merge "Merge "Add mutual exclusion access for addOrUpdateStream and removeStream" am: af108c45d6 am: 760c2bccd2 am: bd580a07b4 am: 91e082a90d am: 7f6cc71fe5" into rvc-dev am: d32c56d24d

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11697200

Change-Id: I798ba177a5daaf4242f4934f36b437b0c681558b
This commit is contained in:
TreeHugger Robot
2020-06-12 17:22:03 +00:00
committed by Automerger Merge Worker

View File

@@ -301,6 +301,7 @@ private:
JTvInputHal(JNIEnv* env, jobject thiz, sp<ITvInput> tvInput, const sp<Looper>& looper); JTvInputHal(JNIEnv* env, jobject thiz, sp<ITvInput> tvInput, const sp<Looper>& looper);
Mutex mLock; Mutex mLock;
Mutex mStreamLock;
jweak mThiz; jweak mThiz;
sp<Looper> mLooper; sp<Looper> mLooper;
@@ -338,6 +339,7 @@ JTvInputHal* JTvInputHal::createInstance(JNIEnv* env, jobject thiz, const sp<Loo
} }
int JTvInputHal::addOrUpdateStream(int deviceId, int streamId, const sp<Surface>& surface) { int JTvInputHal::addOrUpdateStream(int deviceId, int streamId, const sp<Surface>& surface) {
Mutex::Autolock autoLock(&mStreamLock);
KeyedVector<int, Connection>& connections = mConnections.editValueFor(deviceId); KeyedVector<int, Connection>& connections = mConnections.editValueFor(deviceId);
if (connections.indexOfKey(streamId) < 0) { if (connections.indexOfKey(streamId) < 0) {
connections.add(streamId, Connection()); connections.add(streamId, Connection());
@@ -412,6 +414,7 @@ int JTvInputHal::addOrUpdateStream(int deviceId, int streamId, const sp<Surface>
} }
int JTvInputHal::removeStream(int deviceId, int streamId) { int JTvInputHal::removeStream(int deviceId, int streamId) {
Mutex::Autolock autoLock(&mStreamLock);
KeyedVector<int, Connection>& connections = mConnections.editValueFor(deviceId); KeyedVector<int, Connection>& connections = mConnections.editValueFor(deviceId);
if (connections.indexOfKey(streamId) < 0) { if (connections.indexOfKey(streamId) < 0) {
return BAD_VALUE; return BAD_VALUE;