Index: base/threading/thread_id_name_manager.h |
diff --git a/base/threading/thread_id_name_manager.h b/base/threading/thread_id_name_manager.h |
index e592742e6a348375a3d3de745b6be68d1c04a56d..0ea59df6572cfcdf03c68fe8dac06c0792a51c2f 100644 |
--- a/base/threading/thread_id_name_manager.h |
+++ b/base/threading/thread_id_name_manager.h |
@@ -23,6 +23,9 @@ class BASE_EXPORT ThreadIdNameManager { |
static const char* GetDefaultInternedString(); |
+ // Register the mapping between a thread |id| and |handle|. |
+ void RegisterThread(PlatformThreadHandle::Handle handle, PlatformThreadId id); |
+ |
// Set the name for the given id. |
void SetName(PlatformThreadId id, const char* name); |
@@ -30,19 +33,31 @@ class BASE_EXPORT ThreadIdNameManager { |
const char* GetName(PlatformThreadId id); |
// Remove the name for the given id. |
- void RemoveName(PlatformThreadId id); |
+ void RemoveName(PlatformThreadHandle::Handle handle, PlatformThreadId id); |
private: |
friend struct DefaultSingletonTraits<ThreadIdNameManager>; |
+ typedef std::map<PlatformThreadId, PlatformThreadHandle::Handle> |
+ ThreadIdToHandleMap; |
+ typedef std::map<PlatformThreadHandle::Handle, std::string*> |
+ ThreadHandleToInternedNameMap; |
+ typedef std::map<std::string, std::string*> NameToInternedNameMap; |
+ |
ThreadIdNameManager(); |
~ThreadIdNameManager(); |
- // lock_ protects both the thread_id_to_name_ and name_to_interned_name_ maps. |
+ // lock_ protects the name_to_interned_name_, thread_id_to_handle_ and |
+ // thread_handle_to_interned_name_ maps. |
Lock lock_; |
- std::map<PlatformThreadId, std::string*> thread_id_to_interned_name_; |
- std::map<std::string, std::string*> name_to_interned_name_; |
+ NameToInternedNameMap name_to_interned_name_; |
+ ThreadIdToHandleMap thread_id_to_handle_; |
+ ThreadHandleToInternedNameMap thread_handle_to_interned_name_; |
+ |
+ // Treat the main process specially as there is no PlatformThreadHandle. |
+ std::string* main_process_name_; |
+ PlatformThreadId main_process_id_; |
DISALLOW_COPY_AND_ASSIGN(ThreadIdNameManager); |
}; |