| Index: chrome/browser/chromeos/audio_mixer_alsa.cc
|
| diff --git a/chrome/browser/chromeos/audio_mixer_alsa.cc b/chrome/browser/chromeos/audio_mixer_alsa.cc
|
| index 01c22bdae36451a27c4bd454591b0db0a8af680d..a42868e339dc89ff877dfc6a3bd42ecbc60b4152 100644
|
| --- a/chrome/browser/chromeos/audio_mixer_alsa.cc
|
| +++ b/chrome/browser/chromeos/audio_mixer_alsa.cc
|
| @@ -8,6 +8,7 @@
|
|
|
| #include "base/logging.h"
|
| #include "base/task.h"
|
| +#include "base/threading/thread_restrictions.h"
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/browser_thread.h"
|
| #include "chrome/browser/prefs/pref_service.h"
|
| @@ -51,6 +52,11 @@ AudioMixerAlsa::AudioMixerAlsa()
|
| AudioMixerAlsa::~AudioMixerAlsa() {
|
| FreeAlsaMixer();
|
| if (thread_ != NULL) {
|
| + // A ScopedAllowIO object is required to join the thread when calling Stop.
|
| + // The worker thread should be idle at this time.
|
| + // See http://crosbug.com/11110 for discussion.
|
| + base::ThreadRestrictions::ScopedAllowIO allow_io_for_thread_join;
|
| +
|
| thread_->Stop();
|
| thread_.reset();
|
| }
|
| @@ -301,7 +307,7 @@ void AudioMixerAlsa::DoSetVolumeMute(double pref_volume, int pref_mute) {
|
| save_volume_ = pref_volume;
|
| DoSetVolumeDb_Locked(min_volume_);
|
| } else {
|
| - DoSetVolumeDb_Locked(pref_volume);
|
| + DoSetVolumeDb_Locked(pref_volume);
|
| }
|
|
|
| SetElementMuted_Locked(elem_master_, mute);
|
|
|