Merge "Add mutual exclusion access for addOrUpdateStream and removeStream" am: af108c45d6

Original change: undetermined

Change-Id: I69463584ec55124a0df39df6814def1061bd7bdc
This commit is contained in:
Treehugger Robot
2020-06-01 21:48:31 +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;