question: close the camera and wait for the close callback to be called in the camera thread . times out after @ value camera_close_timeout ms. concode_field_sep HandlerThread mCameraThread concode_elem_sep Runnable mCloseCameraRunnable concode_elem_sep List<Surface> mSurfaces concode_elem_sep long CAMERA_CLOSE_TIMEOUT concode_elem_sep Handler mCameraHandler concode_elem_sep CameraManager mCameraManager concode_elem_sep ErrorDisplayer mErrorDisplayer concode_elem_sep CameraReadyListener mReadyListener concode_elem_sep String TAG concode_elem_sep CameraDevice mCameraDevice concode_elem_sep CameraCaptureSession mCameraSession concode_elem_sep CameraCaptureSession.StateCallback mCameraSessionListener concode_elem_sep ConditionVariable mCloseWaiter concode_elem_sep Handler mReadyHandler concode_elem_sep CameraDevice.StateCallback mCameraDeviceListener concode_field_sep void onConfigured concode_elem_sep void onClosed concode_elem_sep String getErrorString concode_elem_sep void onError concode_elem_sep void openCamera concode_elem_sep void setRepeatingRequest concode_elem_sep void run concode_elem_sep void setRepeatingBurst concode_elem_sep void startCameraSession concode_elem_sep void setSurfaces concode_elem_sep void onOpened concode_elem_sep void onConfigureFailed concode_elem_sep void onCameraReady concode_elem_sep void onDisconnected concode_elem_sep CaptureRequest.Builder createCaptureRequest concode_elem_sep void showErrorDialog
target: void function ( ) { mCloseWaiter . close ( ) ; mCameraHandler . post ( mCloseCameraRunnable ) ; boolean loc0 = mCloseWaiter . block ( CAMERA_CLOSE_TIMEOUT ) ; if ( ! loc0 ) { Log . e ( TAG , "srini_string" ) ; } }