Commit c2fe9dd2 authored by jar@chromium.org's avatar jar@chromium.org

Set the profiler's thread name at a central place

This will automatically catch thread names in several of the
child processes we are after, and it also catches the name
for a webkcore thread.

r=rtenneti
Review URL: http://codereview.chromium.org/8558003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109898 0039d316-1c4b-4281-b951-d872f2087c98
parent 98b968dc
......@@ -13,6 +13,7 @@
#include "base/safe_strerror_posix.h"
#include "base/threading/thread_local.h"
#include "base/threading/thread_restrictions.h"
#include "base/tracked_objects.h"
#if defined(OS_MACOSX)
#include <mach/mach.h>
......@@ -175,6 +176,7 @@ void PlatformThread::SetName(const char* name) {
// have to cast away const because ThreadLocalPointer does not support const
// void*
current_thread_name.Pointer()->Set(const_cast<char*>(name));
tracked_objects::ThreadData::InitializeThreadContext(name);
// http://0pointer.de/blog/projects/name-your-threads.html
......@@ -210,6 +212,7 @@ void PlatformThread::SetName(const char* name) {
// have to cast away const because ThreadLocalPointer does not support const
// void*
current_thread_name.Pointer()->Set(const_cast<char*>(name));
tracked_objects::ThreadData::InitializeThreadContext(name);
// (This should be relatively simple to implement for the BSDs; I
// just don't have one handy to test the code on.)
......
......@@ -8,6 +8,7 @@
#include "base/logging.h"
#include "base/threading/thread_local.h"
#include "base/threading/thread_restrictions.h"
#include "base/tracked_objects.h"
#include "base/win/windows_version.h"
......@@ -100,6 +101,7 @@ void PlatformThread::Sleep(int duration_ms) {
// static
void PlatformThread::SetName(const char* name) {
current_thread_name.Set(const_cast<char*>(name));
tracked_objects::ThreadData::InitializeThreadContext(name);
// The debugger needs to be around to catch the name in the exception. If
// there isn't a debugger, we are just needlessly throwing an exception.
......
......@@ -8,7 +8,6 @@
#include "base/third_party/dynamic_annotations/dynamic_annotations.h"
#include "base/threading/thread_local.h"
#include "base/synchronization/waitable_event.h"
#include "base/tracked_objects.h"
namespace base {
......@@ -152,7 +151,6 @@ void Thread::ThreadMain() {
ANNOTATE_THREAD_NAME(name_.c_str()); // Tell the name to race detector.
message_loop.set_thread_name(name_);
message_loop_ = &message_loop;
tracked_objects::ThreadData::InitializeThreadContext(name_);
// Let the thread do extra initialization.
// Let's do this before signaling we are started.
......
......@@ -11,7 +11,6 @@
#include "base/metrics/field_trial.h"
#include "base/metrics/histogram.h"
#include "base/threading/thread_restrictions.h"
#include "base/tracked_objects.h"
#include "content/browser/browser_thread_impl.h"
#include "content/browser/trace_controller.h"
#include "content/common/hi_res_timer_manager.h"
......@@ -297,7 +296,6 @@ void BrowserMainLoop::InitializeMainThread() {
const char* kThreadName = "CrBrowserMain";
base::PlatformThread::SetName(kThreadName);
main_message_loop_->set_thread_name(kThreadName);
tracked_objects::ThreadData::InitializeThreadContext(kThreadName);
// Register the main thread by instantiating it, but don't call any methods.
main_thread_.reset(new BrowserThreadImpl(BrowserThread::UI,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment