diff options
author | Jean-Michel Trivi <jmtrivi@google.com> | 2014-12-10 22:36:20 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-12-10 22:36:20 +0000 |
commit | de148628b9850492fad26c801d0eb663d14400cb (patch) | |
tree | b4222bc1c47942949bb2bc2f14c0ae4621852011 /modules | |
parent | c5f5daffb520017f2d6d99d245866b448723c876 (diff) | |
parent | 257fde6eb533b890776c8c45be8b61c48ab04945 (diff) | |
download | hardware_libhardware-de148628b9850492fad26c801d0eb663d14400cb.zip hardware_libhardware-de148628b9850492fad26c801d0eb663d14400cb.tar.gz hardware_libhardware-de148628b9850492fad26c801d0eb663d14400cb.tar.bz2 |
am 257fde6e: Reroute submix HAL: fix race condition on output state
* commit '257fde6eb533b890776c8c45be8b61c48ab04945':
Reroute submix HAL: fix race condition on output state
Diffstat (limited to 'modules')
-rw-r--r-- | modules/audio_remote_submix/audio_hw.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/modules/audio_remote_submix/audio_hw.cpp b/modules/audio_remote_submix/audio_hw.cpp index bd50246..b9dcf7a 100644 --- a/modules/audio_remote_submix/audio_hw.cpp +++ b/modules/audio_remote_submix/audio_hw.cpp @@ -1036,9 +1036,10 @@ static ssize_t in_read(struct audio_stream_in *stream, void* buffer, SUBMIX_ALOGV("in_read bytes=%zu", bytes); pthread_mutex_lock(&rsxadev->lock); - const bool output_standby_transition = - (in->output_standby_rec_thr != rsxadev->routes[in->route_handle].output->output_standby); - in->output_standby_rec_thr = rsxadev->routes[in->route_handle].output->output_standby; + const bool output_standby = rsxadev->routes[in->route_handle].output == NULL + ? true : rsxadev->routes[in->route_handle].output->output_standby; + const bool output_standby_transition = (in->output_standby_rec_thr != output_standby); + in->output_standby_rec_thr = output_standby; if (in->input_standby || output_standby_transition) { in->input_standby = false; |