Chromium Code Reviews| Index: media/audio/audio_output_dispatcher.cc |
| diff --git a/media/audio/audio_output_dispatcher.cc b/media/audio/audio_output_dispatcher.cc |
| index 8e402777fc7052004f0e0ab7cc7c1353c1cd7e48..9783c1d027a66946926ad85ba89ee4f674b10b28 100644 |
| --- a/media/audio/audio_output_dispatcher.cc |
| +++ b/media/audio/audio_output_dispatcher.cc |
| @@ -14,7 +14,7 @@ AudioOutputDispatcher::AudioOutputDispatcher( |
| AudioManager* audio_manager, const AudioParameters& params, |
| base::TimeDelta close_delay) |
| : audio_manager_(audio_manager), |
| - message_loop_(audio_manager->GetMessageLoop()), |
| + message_loop_(MessageLoop::current()), |
| params_(params), |
| pause_delay_(base::TimeDelta::FromMilliseconds( |
| 2 * params.samples_per_packet * |
| @@ -25,7 +25,9 @@ AudioOutputDispatcher::AudioOutputDispatcher( |
| close_delay, |
| weak_this_.GetWeakPtr(), |
| &AudioOutputDispatcher::ClosePendingStreams) { |
| - DCHECK_EQ(MessageLoop::current(), message_loop_); |
| + // We expect to be instantiated on the audio thread. Otherwise the |
| + // message_loop_ member will point to the wrong message loop! |
| + DCHECK(audio_manager->GetMessageLoop()->BelongsToCurrentThread()); |
| } |
| AudioOutputDispatcher::~AudioOutputDispatcher() { |
| @@ -133,8 +135,9 @@ void AudioOutputDispatcher::Shutdown() { |
| pausing_streams_.clear(); |
| } |
| -MessageLoop* AudioOutputDispatcher::message_loop() { |
| - return message_loop_; |
| +bool AudioOutputDispatcher::CurrentThreadIsAudioThread() const { |
|
scherkus (not reviewing)
2012/01/18 18:12:31
nit: if this is a single threaded/non-thread safe
|
| + DCHECK(message_loop_); |
| + return MessageLoop::current() == message_loop_; |
| } |
| bool AudioOutputDispatcher::CreateAndOpenStream() { |