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

Side by Side Diff: chrome/browser/metrics/thread_watcher.cc

Issue 622683002: ThreadWatcher - Disarm the StartupTimeBomb, if we haven't started (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@fix_disk_cache
Patch Set: Created 6 years, 2 months 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/metrics/thread_watcher.h" 5 #include "chrome/browser/metrics/thread_watcher.h"
6 6
7 #include <math.h> // ceil 7 #include <math.h> // ceil
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 unresponsive_threshold(unresponsive_threshold) { 432 unresponsive_threshold(unresponsive_threshold) {
433 } 433 }
434 434
435 ThreadWatcherList::CrashDataThresholds::CrashDataThresholds() 435 ThreadWatcherList::CrashDataThresholds::CrashDataThresholds()
436 : live_threads_threshold(kLiveThreadsThreshold), 436 : live_threads_threshold(kLiveThreadsThreshold),
437 unresponsive_threshold(kUnresponsiveCount) { 437 unresponsive_threshold(kUnresponsiveCount) {
438 } 438 }
439 439
440 // static 440 // static
441 void ThreadWatcherList::StartWatchingAll(const CommandLine& command_line) { 441 void ThreadWatcherList::StartWatchingAll(const CommandLine& command_line) {
442 // TODO(rtenneti): Enable ThreadWatcher. 442 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
443 uint32 unresponsive_threshold; 443 uint32 unresponsive_threshold;
444 CrashOnHangThreadMap crash_on_hang_threads; 444 CrashOnHangThreadMap crash_on_hang_threads;
445 ParseCommandLine(command_line, 445 ParseCommandLine(command_line,
446 &unresponsive_threshold, 446 &unresponsive_threshold,
447 &crash_on_hang_threads); 447 &crash_on_hang_threads);
448 448
449 ThreadWatcherObserver::SetupNotifications( 449 ThreadWatcherObserver::SetupNotifications(
450 base::TimeDelta::FromSeconds(kSleepSeconds * unresponsive_threshold)); 450 base::TimeDelta::FromSeconds(kSleepSeconds * unresponsive_threshold));
451 451
452 WatchDogThread::PostTask( 452 WatchDogThread::PostTask(
453 FROM_HERE, 453 FROM_HERE,
454 base::Bind(&ThreadWatcherList::SetStopped, false)); 454 base::Bind(&ThreadWatcherList::SetStopped, false));
455 455
456 WatchDogThread::PostDelayedTask( 456 if (!WatchDogThread::PostDelayedTask(
457 FROM_HERE, 457 FROM_HERE,
458 base::Bind(&ThreadWatcherList::InitializeAndStartWatching, 458 base::Bind(&ThreadWatcherList::InitializeAndStartWatching,
459 unresponsive_threshold, 459 unresponsive_threshold,
460 crash_on_hang_threads), 460 crash_on_hang_threads),
461 base::TimeDelta::FromSeconds(g_initialize_delay_seconds)); 461 base::TimeDelta::FromSeconds(g_initialize_delay_seconds))) {
462 // Disarm() the startup timebomb, if we couldn't post the task to start the
463 // ThreadWatcher (becasue WatchDog thread is not running).
464 StartupTimeBomb::DisarmStartupTimeBomb();
465 }
462 } 466 }
463 467
464 // static 468 // static
465 void ThreadWatcherList::StopWatchingAll() { 469 void ThreadWatcherList::StopWatchingAll() {
466 // TODO(rtenneti): Enable ThreadWatcher. 470 // TODO(rtenneti): Enable ThreadWatcher.
467 ThreadWatcherObserver::RemoveNotifications(); 471 ThreadWatcherObserver::RemoveNotifications();
468 DeleteAll(); 472 DeleteAll();
469 } 473 }
470 474
471 // static 475 // static
(...skipping 605 matching lines...) Expand 10 before | Expand all | Expand 10 after
1077 1081
1078 #if defined(OS_WIN) 1082 #if defined(OS_WIN)
1079 // On Windows XP, give twice the time for shutdown. 1083 // On Windows XP, give twice the time for shutdown.
1080 if (base::win::GetVersion() <= base::win::VERSION_XP) 1084 if (base::win::GetVersion() <= base::win::VERSION_XP)
1081 actual_duration *= 2; 1085 actual_duration *= 2;
1082 #endif 1086 #endif
1083 1087
1084 shutdown_watchdog_ = new ShutdownWatchDogThread(actual_duration); 1088 shutdown_watchdog_ = new ShutdownWatchDogThread(actual_duration);
1085 shutdown_watchdog_->Arm(); 1089 shutdown_watchdog_->Arm();
1086 } 1090 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698