Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6233)

Unified Diff: chrome/browser/renderer_host/audio_renderer_host.cc

Issue 354002: Sixth patch in getting rid of caching MessageLoop pointers. Audio and automa... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/renderer_host/audio_renderer_host.cc
===================================================================
--- chrome/browser/renderer_host/audio_renderer_host.cc (revision 30691)
+++ chrome/browser/renderer_host/audio_renderer_host.cc (working copy)
@@ -22,10 +22,10 @@
#include "base/histogram.h"
#include "base/lock.h"
-#include "base/message_loop.h"
#include "base/process.h"
#include "base/shared_memory.h"
#include "base/waitable_event.h"
+#include "chrome/browser/chrome_thread.h"
#include "chrome/browser/renderer_host/audio_renderer_host.h"
#include "chrome/common/render_messages.h"
#include "ipc/ipc_logging.h"
@@ -331,14 +331,14 @@
//-----------------------------------------------------------------------------
// AudioRendererHost implementations.
-AudioRendererHost::AudioRendererHost(MessageLoop* message_loop)
+AudioRendererHost::AudioRendererHost()
: process_id_(0),
process_handle_(0),
- ipc_sender_(NULL),
- io_loop_(message_loop) {
+ ipc_sender_(NULL) {
// Make sure we perform actual initialization operations in the thread where
// this object should live.
- io_loop_->PostTask(FROM_HERE,
+ ChromeThread::PostTask(
+ ChromeThread::IO, FROM_HERE,
NewRunnableMethod(this, &AudioRendererHost::OnInitialized));
}
@@ -349,15 +349,16 @@
void AudioRendererHost::Destroy() {
// Post a message to the thread where this object should live and do the
// actual operations there.
- io_loop_->PostTask(
- FROM_HERE, NewRunnableMethod(this, &AudioRendererHost::OnDestroyed));
+ ChromeThread::PostTask(
+ ChromeThread::IO, FROM_HERE,
+ NewRunnableMethod(this, &AudioRendererHost::OnDestroyed));
}
// Event received when IPC channel is connected to the renderer process.
void AudioRendererHost::IPCChannelConnected(int process_id,
base::ProcessHandle process_handle,
IPC::Message::Sender* ipc_sender) {
- DCHECK(MessageLoop::current() == io_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
process_id_ = process_id;
process_handle_ = process_handle;
ipc_sender_ = ipc_sender;
@@ -365,7 +366,7 @@
// Event received when IPC channel is closing.
void AudioRendererHost::IPCChannelClosing() {
- DCHECK(MessageLoop::current() == io_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
ipc_sender_ = NULL;
process_handle_ = 0;
process_id_ = 0;
@@ -411,7 +412,7 @@
void AudioRendererHost::OnCreateStream(
const IPC::Message& msg, int stream_id,
const ViewHostMsg_Audio_CreateStream& params) {
- DCHECK(MessageLoop::current() == io_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
DCHECK(Lookup(msg.routing_id(), stream_id) == NULL);
IPCAudioSource* source = IPCAudioSource::CreateIPCAudioSource(
@@ -438,7 +439,7 @@
}
void AudioRendererHost::OnPlayStream(const IPC::Message& msg, int stream_id) {
- DCHECK(MessageLoop::current() == io_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
IPCAudioSource* source = Lookup(msg.routing_id(), stream_id);
if (source) {
source->Play();
@@ -448,7 +449,7 @@
}
void AudioRendererHost::OnPauseStream(const IPC::Message& msg, int stream_id) {
- DCHECK(MessageLoop::current() == io_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
IPCAudioSource* source = Lookup(msg.routing_id(), stream_id);
if (source) {
source->Pause();
@@ -458,7 +459,7 @@
}
void AudioRendererHost::OnCloseStream(const IPC::Message& msg, int stream_id) {
- DCHECK(MessageLoop::current() == io_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
IPCAudioSource* source = Lookup(msg.routing_id(), stream_id);
if (source) {
DestroySource(source);
@@ -467,7 +468,7 @@
void AudioRendererHost::OnSetVolume(const IPC::Message& msg, int stream_id,
double left_channel, double right_channel) {
- DCHECK(MessageLoop::current() == io_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
IPCAudioSource* source = Lookup(msg.routing_id(), stream_id);
if (source) {
source->SetVolume(left_channel, right_channel);
@@ -477,7 +478,7 @@
}
void AudioRendererHost::OnGetVolume(const IPC::Message& msg, int stream_id) {
- DCHECK(MessageLoop::current() == io_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
IPCAudioSource* source = Lookup(msg.routing_id(), stream_id);
if (source) {
source->GetVolume();
@@ -488,7 +489,7 @@
void AudioRendererHost::OnNotifyPacketReady(const IPC::Message& msg,
int stream_id, size_t packet_size) {
- DCHECK(MessageLoop::current() == io_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
IPCAudioSource* source = Lookup(msg.routing_id(), stream_id);
if (source) {
source->NotifyPacketReady(packet_size);
@@ -498,14 +499,14 @@
}
void AudioRendererHost::OnInitialized() {
- DCHECK(MessageLoop::current() == io_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
// Increase the ref count of this object so it is active until we do
// Release().
AddRef();
}
void AudioRendererHost::OnDestroyed() {
- DCHECK(MessageLoop::current() == io_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
ipc_sender_ = NULL;
process_handle_ = 0;
process_id_ = 0;
@@ -515,14 +516,14 @@
}
void AudioRendererHost::OnSend(IPC::Message* message) {
- DCHECK(MessageLoop::current() == io_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
if (ipc_sender_) {
ipc_sender_->Send(message);
}
}
void AudioRendererHost::OnDestroySource(IPCAudioSource* source) {
- DCHECK(MessageLoop::current() == io_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
if (source) {
sources_.erase(SourceID(source->route_id(), source->stream_id()));
source->Close();
@@ -531,7 +532,7 @@
}
void AudioRendererHost::DestroyAllSources() {
- DCHECK(MessageLoop::current() == io_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
std::vector<IPCAudioSource*> sources;
for (SourceMap::iterator i = sources_.begin(); i != sources_.end(); ++i) {
sources.push_back(i->second);
@@ -544,7 +545,7 @@
AudioRendererHost::IPCAudioSource* AudioRendererHost::Lookup(int route_id,
int stream_id) {
- DCHECK(MessageLoop::current() == io_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
SourceMap::iterator i = sources_.find(SourceID(route_id, stream_id));
if (i != sources_.end())
return i->second;
@@ -552,13 +553,11 @@
}
void AudioRendererHost::Send(IPC::Message* message) {
- if (MessageLoop::current() == io_loop_) {
+ if (ChromeThread::CurrentlyOn(ChromeThread::IO)) {
OnSend(message);
} else {
- // TODO(hclam): make sure it's always safe to post a task to IO loop.
- // It is possible that IO message loop is destroyed but there's still some
- // dangling audio hardware threads that try to call this method.
- io_loop_->PostTask(FROM_HERE,
+ ChromeThread::PostTask(
+ ChromeThread::IO, FROM_HERE,
NewRunnableMethod(this, &AudioRendererHost::OnSend, message));
}
}
@@ -572,13 +571,11 @@
}
void AudioRendererHost::DestroySource(IPCAudioSource* source) {
- if (MessageLoop::current() == io_loop_) {
+ if (ChromeThread::CurrentlyOn(ChromeThread::IO)) {
OnDestroySource(source);
} else {
- // TODO(hclam): make sure it's always safe to post a task to IO loop.
- // It is possible that IO message loop is destroyed but there's still some
- // dangling audio hardware threads that try to call this method.
- io_loop_->PostTask(FROM_HERE,
- NewRunnableMethod(this, &AudioRendererHost::OnDestroySource, source));
+ ChromeThread::PostTask(
+ ChromeThread::IO, FROM_HERE,
+ NewRunnableMethod(this, &AudioRendererHost::OnDestroySource, source));
}
}
« no previous file with comments | « chrome/browser/renderer_host/audio_renderer_host.h ('k') | chrome/browser/renderer_host/audio_renderer_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698