Index: chrome/browser/metrics/thread_watcher.h |
diff --git a/chrome/browser/metrics/thread_watcher.h b/chrome/browser/metrics/thread_watcher.h |
index 2c4b027dcf609e48366401e5795571296e376ffa..939375a41b8fc35d8ad6500a85af62e01f624aa4 100644 |
--- a/chrome/browser/metrics/thread_watcher.h |
+++ b/chrome/browser/metrics/thread_watcher.h |
@@ -410,6 +410,7 @@ class ThreadWatcherList { |
FRIEND_TEST_ALL_PREFIXES(ThreadWatcherTest, ThreadNamesOnlyArgs); |
FRIEND_TEST_ALL_PREFIXES(ThreadWatcherTest, ThreadNamesAndLiveThresholdArgs); |
FRIEND_TEST_ALL_PREFIXES(ThreadWatcherTest, CrashOnHangThreadsAllArgs); |
+ FRIEND_TEST_ALL_PREFIXES(ThreadWatcherListTest, Restart); |
FRIEND_TEST_ALL_PREFIXES(ThreadWatcherAndroidTest, |
ApplicationStatusNotification); |
@@ -464,10 +465,19 @@ class ThreadWatcherList { |
// already registered, or to retrieve a pointer to it from the global map. |
static ThreadWatcher* Find(const content::BrowserThread::ID& thread_id); |
+ // Sets |g_stopped_| on the WatchDogThread. This is necessary to reflect the |
+ // state between the delayed |StartWatchingAll| and the immediate |
+ // |StopWatchingAll|. |
+ static void SetStopped(bool stopped); |
+ |
// The singleton of this class and is used to keep track of information about |
// threads that are being watched. |
static ThreadWatcherList* g_thread_watcher_list_; |
+ // StartWatchingAll() is delayed in relation to StopWatchingAll(), so if |
+ // a Stop comes first, prevent further initialization. |
+ static bool g_stopped_; |
+ |
// This is the wait time between ping messages. |
static const int kSleepSeconds; |