CameraService: Disconnect: Release mutex while waiting for joins.
The threads shutting down may have callpaths that require taking the binder interface mutex, so waiting to join them with that mutex held can lead to deadlocks. A specific instance is StreamingProcessor calling dataCallbackTimestamp, which can immediately lead to a Camera2Client::releaseRecordingFrame call, which requires the binder interface mutex. If this call happens right when shutdown is occurring, and Camera2Client::disconnect is holding the mutex, deadlock ensues. Bug: 17997578 Change-Id: I71253cd5542b5920ad205976d315110ca0043d94
Loading
Please register or sign in to comment