summaryrefslogtreecommitdiffstats
path: root/services/camera/libcameraservice/api1
diff options
context:
space:
mode:
authorRuben Brunk <rubenbrunk@google.com>2014-02-24 22:28:30 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-02-24 22:28:30 +0000
commit3f73448090d99612c6d8f579e4164507d8848cc1 (patch)
treebffff5f46e4b56f966746e9d4232418692c46899 /services/camera/libcameraservice/api1
parent9e2c298daec57edcf3d4d740673ebb94819f84c1 (diff)
parentdfe715582943b3fc9bab91f88257a3bba6c6deef (diff)
downloadframeworks_av-3f73448090d99612c6d8f579e4164507d8848cc1.zip
frameworks_av-3f73448090d99612c6d8f579e4164507d8848cc1.tar.gz
frameworks_av-3f73448090d99612c6d8f579e4164507d8848cc1.tar.bz2
Merge "camera2: Fix race with stream deletion during disconnect."
Diffstat (limited to 'services/camera/libcameraservice/api1')
-rw-r--r--services/camera/libcameraservice/api1/Camera2Client.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/services/camera/libcameraservice/api1/Camera2Client.cpp b/services/camera/libcameraservice/api1/Camera2Client.cpp
index 0a88a75..80b7cd4 100644
--- a/services/camera/libcameraservice/api1/Camera2Client.cpp
+++ b/services/camera/libcameraservice/api1/Camera2Client.cpp
@@ -407,12 +407,6 @@ void Camera2Client::disconnect() {
l.mParameters.state = Parameters::DISCONNECTED;
}
- mStreamingProcessor->deletePreviewStream();
- mStreamingProcessor->deleteRecordingStream();
- mJpegProcessor->deleteStream();
- mCallbackProcessor->deleteStream();
- mZslProcessor->deleteStream();
-
mStreamingProcessor->requestExit();
mFrameProcessor->requestExit();
mCaptureSequencer->requestExit();
@@ -429,6 +423,14 @@ void Camera2Client::disconnect() {
mZslProcessorThread->join();
mCallbackProcessor->join();
+ ALOGV("Camera %d: Deleting streams", mCameraId);
+
+ mStreamingProcessor->deletePreviewStream();
+ mStreamingProcessor->deleteRecordingStream();
+ mJpegProcessor->deleteStream();
+ mCallbackProcessor->deleteStream();
+ mZslProcessor->deleteStream();
+
ALOGV("Camera %d: Disconnecting device", mCameraId);
mDevice->disconnect();