audio_processing/agc: Put entire method set_output_will_be_muted() under lock
Setting the member value output_will_be_muted_ in set_output_will_be_muted() was done before the lock.
This caused a data race.
BUG=4477
R=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/44929004
Cr-Commit-Position: refs/heads/master@{#8877}
diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc
index eeb9a79..1074b61 100644
--- a/webrtc/modules/audio_processing/audio_processing_impl.cc
+++ b/webrtc/modules/audio_processing/audio_processing_impl.cc
@@ -452,14 +452,15 @@
}
void AudioProcessingImpl::set_output_will_be_muted(bool muted) {
- output_will_be_muted_ = muted;
CriticalSectionScoped lock(crit_);
+ output_will_be_muted_ = muted;
if (agc_manager_.get()) {
agc_manager_->SetCaptureMuted(output_will_be_muted_);
}
}
bool AudioProcessingImpl::output_will_be_muted() const {
+ CriticalSectionScoped lock(crit_);
return output_will_be_muted_;
}
diff --git a/webrtc/modules/audio_processing/audio_processing_impl.h b/webrtc/modules/audio_processing/audio_processing_impl.h
index 765cde7..500f08e 100644
--- a/webrtc/modules/audio_processing/audio_processing_impl.h
+++ b/webrtc/modules/audio_processing/audio_processing_impl.h
@@ -210,7 +210,7 @@
int delay_offset_ms_;
bool was_stream_delay_set_;
- bool output_will_be_muted_;
+ bool output_will_be_muted_ GUARDED_BY(crit_);
bool key_pressed_;