Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0ec23d3f authored by Eino-Ville Talvala's avatar Eino-Ville Talvala
Browse files

Camera3Device: Do not call cleanUpFailedRequest with mutex held

Double-acquiring a non-recursive mutex tends to work poorly.

Bug: 21498811
Change-Id: I1d59959fca69c97684522195808019797f7a6a7d
parent e74c228e
Loading
Loading
Loading
Loading
+14 −10
Original line number Diff line number Diff line
@@ -2765,12 +2765,14 @@ bool Camera3Device::RequestThread::threadLoop() {
            // error
            ALOGE("RequestThread: Can't get input buffer, skipping request:"
                    " %s (%d)", strerror(-res), res);
            {
                Mutex::Autolock l(mRequestLock);
                if (mListener != NULL) {
                    mListener->notifyError(
                            ICameraDeviceCallbacks::ERROR_CAMERA_REQUEST,
                            nextRequest->mResultExtras);
                }
            }
            cleanUpFailedRequest(request, nextRequest, outputBuffers);
            return true;
        }
@@ -2792,12 +2794,14 @@ bool Camera3Device::RequestThread::threadLoop() {
            // error
            ALOGE("RequestThread: Can't get output buffer, skipping request:"
                    " %s (%d)", strerror(-res), res);
            {
                Mutex::Autolock l(mRequestLock);
                if (mListener != NULL) {
                    mListener->notifyError(
                            ICameraDeviceCallbacks::ERROR_CAMERA_REQUEST,
                            nextRequest->mResultExtras);
                }
            }
            cleanUpFailedRequest(request, nextRequest, outputBuffers);
            return true;
        }