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

Unified Diff: content/browser/renderer_host/render_process_host.cc

Issue 8493016: content: Remove 16 exit time destructors and 15 static initializers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: mac compile Created 9 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
« no previous file with comments | « content/browser/net/url_request_slow_http_job.cc ('k') | content/common/np_channel_base.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/render_process_host.cc
diff --git a/content/browser/renderer_host/render_process_host.cc b/content/browser/renderer_host/render_process_host.cc
index 5c59da9f0295a9671cfc1071ecf0121d7a2f61f0..73b411e85c7422081562b497670364413220ebe8 100644
--- a/content/browser/renderer_host/render_process_host.cc
+++ b/content/browser/renderer_host/render_process_host.cc
@@ -5,6 +5,7 @@
#include "content/browser/renderer_host/render_process_host.h"
#include "base/command_line.h"
+#include "base/lazy_instance.h"
#include "base/rand_util.h"
#include "base/sys_info.h"
#include "content/browser/browser_main.h"
@@ -82,7 +83,9 @@ static bool IsSuitableHost(RenderProcessHost* host,
}
// the global list of all renderer processes
-IDMap<RenderProcessHost> all_hosts;
+base::LazyInstance<IDMap<RenderProcessHost>,
+ base::LeakyLazyInstanceTraits<IDMap<RenderProcessHost> > >
+ g_all_hosts(base::LINKER_INITIALIZED);
} // namespace
@@ -104,16 +107,16 @@ RenderProcessHost::RenderProcessHost(content::BrowserContext* browser_context)
sudden_termination_allowed_(true),
ignore_input_events_(false) {
CHECK(!content::ExitedMainMessageLoop());
- all_hosts.AddWithID(this, id());
- all_hosts.set_check_on_null_data(true);
+ g_all_hosts.Get().AddWithID(this, id());
+ g_all_hosts.Get().set_check_on_null_data(true);
// Initialize |child_process_activity_time_| to a reasonable value.
mark_child_process_activity_time();
}
RenderProcessHost::~RenderProcessHost() {
// In unit tests, Release() might not have been called.
- if (all_hosts.Lookup(id()))
- all_hosts.Remove(id());
+ if (g_all_hosts.Get().Lookup(id()))
+ g_all_hosts.Get().Remove(id());
}
bool RenderProcessHost::HasConnection() const {
@@ -166,7 +169,7 @@ void RenderProcessHost::Cleanup() {
// Remove ourself from the list of renderer processes so that we can't be
// reused in between now and when the Delete task runs.
- all_hosts.Remove(id());
+ g_all_hosts.Get().Remove(id());
}
}
@@ -197,18 +200,18 @@ bool RenderProcessHost::FastShutdownForPageCount(size_t count) {
// static
RenderProcessHost::iterator RenderProcessHost::AllHostsIterator() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- return iterator(&all_hosts);
+ return iterator(g_all_hosts.Pointer());
}
// static
RenderProcessHost* RenderProcessHost::FromID(int render_process_id) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- return all_hosts.Lookup(render_process_id);
+ return g_all_hosts.Get().Lookup(render_process_id);
}
// static
bool RenderProcessHost::ShouldTryToUseExistingProcessHost() {
- size_t renderer_process_count = all_hosts.size();
+ size_t renderer_process_count = g_all_hosts.Get().size();
// NOTE: Sometimes it's necessary to create more render processes than
// GetMaxRendererProcessCount(), for instance when we want to create
@@ -226,7 +229,7 @@ RenderProcessHost* RenderProcessHost::GetExistingProcessHost(
const GURL& site_url) {
// First figure out which existing renderers we can use.
std::vector<RenderProcessHost*> suitable_renderers;
- suitable_renderers.reserve(all_hosts.size());
+ suitable_renderers.reserve(g_all_hosts.Get().size());
iterator iter(AllHostsIterator());
while (!iter.IsAtEnd()) {
« no previous file with comments | « content/browser/net/url_request_slow_http_job.cc ('k') | content/common/np_channel_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698