Merge "Camera: Use separate lock for mStreamingRequestId" into nyc-dev
am: c1e0154
* commit 'c1e0154940f84014967f9f611d22ad85a01be7cb':
Camera: Use separate lock for mStreamingRequestId
Change-Id: Ic46790e70a89eee9e5bbfea514025109ba95b3f1
diff --git a/services/camera/libcameraservice/api2/CameraDeviceClient.cpp b/services/camera/libcameraservice/api2/CameraDeviceClient.cpp
index 63e44fd..dbec34e 100644
--- a/services/camera/libcameraservice/api2/CameraDeviceClient.cpp
+++ b/services/camera/libcameraservice/api2/CameraDeviceClient.cpp
@@ -234,6 +234,7 @@
res = STATUS_ERROR(CameraService::ERROR_INVALID_OPERATION,
msg.string());
} else {
+ Mutex::Autolock idLock(mStreamingRequestIdLock);
mStreamingRequestId = submitInfo->mRequestId;
}
} else {
@@ -271,6 +272,7 @@
return STATUS_ERROR(CameraService::ERROR_DISCONNECTED, "Camera device no longer alive");
}
+ Mutex::Autolock idLock(mStreamingRequestIdLock);
if (mStreamingRequestId != requestId) {
String8 msg = String8::format("Camera %d: Canceling request ID %d doesn't match "
"current request ID %d", mCameraId, requestId, mStreamingRequestId);
@@ -760,6 +762,7 @@
}
// FIXME: Also need check repeating burst.
+ Mutex::Autolock idLock(mStreamingRequestIdLock);
if (mStreamingRequestId != REQUEST_ID_NONE) {
String8 msg = String8::format(
"Camera %d: Try to waitUntilIdle when there are active streaming requests",
@@ -792,6 +795,7 @@
return STATUS_ERROR(CameraService::ERROR_DISCONNECTED, "Camera device no longer alive");
}
+ Mutex::Autolock idLock(mStreamingRequestIdLock);
mStreamingRequestId = REQUEST_ID_NONE;
status_t err = mDevice->flush(lastFrameNumber);
if (err != OK) {
@@ -982,7 +986,7 @@
remoteCb->onRepeatingRequestError(lastFrameNumber);
}
- Mutex::Autolock icl(mBinderSerializationLock);
+ Mutex::Autolock idLock(mStreamingRequestIdLock);
mStreamingRequestId = REQUEST_ID_NONE;
}
diff --git a/services/camera/libcameraservice/api2/CameraDeviceClient.h b/services/camera/libcameraservice/api2/CameraDeviceClient.h
index 3660a18..d792b7d 100644
--- a/services/camera/libcameraservice/api2/CameraDeviceClient.h
+++ b/services/camera/libcameraservice/api2/CameraDeviceClient.h
@@ -208,6 +208,7 @@
// Streaming request ID
int32_t mStreamingRequestId;
+ Mutex mStreamingRequestIdLock;
static const int32_t REQUEST_ID_NONE = -1;
int32_t mRequestIdCounter;