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() { |