| Index: base/threading/platform_thread_win.cc
 | 
| diff --git a/base/threading/platform_thread_win.cc b/base/threading/platform_thread_win.cc
 | 
| index 82981adaf834b7a813cabf40756f4c2d59222ac5..9e877b32f9e1e630ce31c164f5e58680b898e5f7 100644
 | 
| --- a/base/threading/platform_thread_win.cc
 | 
| +++ b/base/threading/platform_thread_win.cc
 | 
| @@ -7,7 +7,7 @@
 | 
|  #include "base/debug/alias.h"
 | 
|  #include "base/debug/profiler.h"
 | 
|  #include "base/logging.h"
 | 
| -#include "base/threading/thread_local.h"
 | 
| +#include "base/threading/thread_id_name_manager.h"
 | 
|  #include "base/threading/thread_restrictions.h"
 | 
|  #include "base/tracked_objects.h"
 | 
|  
 | 
| @@ -17,8 +17,6 @@ namespace base {
 | 
|  
 | 
|  namespace {
 | 
|  
 | 
| -static ThreadLocalPointer<char> current_thread_name;
 | 
| -
 | 
|  // The information on how to set the thread name comes from
 | 
|  // a MSDN article: http://msdn2.microsoft.com/en-us/library/xcb2z8hs.aspx
 | 
|  const DWORD kVCThreadNameException = 0x406D1388;
 | 
| @@ -116,7 +114,7 @@ void PlatformThread::Sleep(TimeDelta duration) {
 | 
|  
 | 
|  // static
 | 
|  void PlatformThread::SetName(const char* name) {
 | 
| -  current_thread_name.Set(const_cast<char*>(name));
 | 
| +  ThreadIdNameManager::GetInstance()->SetName(CurrentId(), name);
 | 
|  
 | 
|    // On Windows only, we don't need to tell the profiler about the "BrokerEvent"
 | 
|    // thread, as it exists only in the chrome.exe image, and never spawns or runs
 | 
| @@ -139,7 +137,7 @@ void PlatformThread::SetName(const char* name) {
 | 
|  
 | 
|  // static
 | 
|  const char* PlatformThread::GetName() {
 | 
| -  return current_thread_name.Get();
 | 
| +  return ThreadIdNameManager::GetInstance()->GetName(CurrentId());
 | 
|  }
 | 
|  
 | 
|  // static
 | 
| 
 |