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

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

Issue 8573021: chrome: Remove 14 exit time destructors and 2 static initializers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Hopefully fix problems seen on the bots Created 9 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 // This file defines a WatchDog thread that monitors the responsiveness of other 5 // This file defines a WatchDog thread that monitors the responsiveness of other
6 // browser threads like UI, IO, DB, FILE and CACHED threads. It also defines 6 // browser threads like UI, IO, DB, FILE and CACHED threads. It also defines
7 // ThreadWatcher class which performs health check on threads that would like to 7 // ThreadWatcher class which performs health check on threads that would like to
8 // be watched. This file also defines ThreadWatcherList class that has list of 8 // be watched. This file also defines ThreadWatcherList class that has list of
9 // all active ThreadWatcher objects. 9 // all active ThreadWatcher objects.
10 // 10 //
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 // DB, FILE, CACHED threads. 455 // DB, FILE, CACHED threads.
456 class WatchDogThread : public base::Thread { 456 class WatchDogThread : public base::Thread {
457 public: 457 public:
458 // Constructor. 458 // Constructor.
459 WatchDogThread(); 459 WatchDogThread();
460 460
461 // Destroys the thread and stops the thread. 461 // Destroys the thread and stops the thread.
462 virtual ~WatchDogThread(); 462 virtual ~WatchDogThread();
463 463
464 // Callable on any thread. Returns whether you're currently on a 464 // Callable on any thread. Returns whether you're currently on a
465 // watchdog_thread_. 465 // WatchDogThread.
466 static bool CurrentlyOnWatchDogThread(); 466 static bool CurrentlyOnWatchDogThread();
467 467
468 // These are the same methods in message_loop.h, but are guaranteed to either 468 // These are the same methods in message_loop.h, but are guaranteed to either
469 // get posted to the MessageLoop if it's still alive, or be deleted otherwise. 469 // get posted to the MessageLoop if it's still alive, or be deleted otherwise.
470 // They return true iff the watchdog thread existed and the task was posted. 470 // They return true iff the watchdog thread existed and the task was posted.
471 // Note that even if the task is posted, there's no guarantee that it will 471 // Note that even if the task is posted, there's no guarantee that it will
472 // run, since the target thread may already have a Quit message in its queue. 472 // run, since the target thread may already have a Quit message in its queue.
473 static bool PostTask(const tracked_objects::Location& from_here, 473 static bool PostTask(const tracked_objects::Location& from_here,
474 const base::Closure& task); 474 const base::Closure& task);
475 static bool PostDelayedTask(const tracked_objects::Location& from_here, 475 static bool PostDelayedTask(const tracked_objects::Location& from_here,
476 const base::Closure& task, 476 const base::Closure& task,
477 int64 delay_ms); 477 int64 delay_ms);
478 478
479 protected: 479 protected:
480 virtual void Init(); 480 virtual void Init();
481 virtual void CleanUp(); 481 virtual void CleanUp();
482 482
483 private: 483 private:
484 static bool PostTaskHelper( 484 static bool PostTaskHelper(
485 const tracked_objects::Location& from_here, 485 const tracked_objects::Location& from_here,
486 const base::Closure& task, 486 const base::Closure& task,
487 int64 delay_ms); 487 int64 delay_ms);
488 488
489 // This lock protects watchdog_thread_.
490 static base::Lock lock_;
491
492 static WatchDogThread* watchdog_thread_; // The singleton of this class.
493
494 DISALLOW_COPY_AND_ASSIGN(WatchDogThread); 489 DISALLOW_COPY_AND_ASSIGN(WatchDogThread);
495 }; 490 };
496 491
497 // This is a wrapper class for getting the crash dumps of the hangs during 492 // This is a wrapper class for getting the crash dumps of the hangs during
498 // startup. 493 // startup.
499 class StartupTimeBomb { 494 class StartupTimeBomb {
500 public: 495 public:
501 // Constructs |startup_watchdog_| which spawns a thread and starts timer. 496 // Constructs |startup_watchdog_| which spawns a thread and starts timer.
502 // |duration| specifies how long |startup_watchdog_| will wait before it 497 // |duration| specifies how long |startup_watchdog_| will wait before it
503 // calls alarm. 498 // calls alarm.
(...skipping 29 matching lines...) Expand all
533 528
534 DISALLOW_COPY_AND_ASSIGN(ShutdownWatcherHelper); 529 DISALLOW_COPY_AND_ASSIGN(ShutdownWatcherHelper);
535 }; 530 };
536 531
537 // DISABLE_RUNNABLE_METHOD_REFCOUNT is a convenience macro for disabling 532 // DISABLE_RUNNABLE_METHOD_REFCOUNT is a convenience macro for disabling
538 // refcounting of ThreadWatcher and ThreadWatcherList classes. 533 // refcounting of ThreadWatcher and ThreadWatcherList classes.
539 DISABLE_RUNNABLE_METHOD_REFCOUNT(ThreadWatcher); 534 DISABLE_RUNNABLE_METHOD_REFCOUNT(ThreadWatcher);
540 DISABLE_RUNNABLE_METHOD_REFCOUNT(ThreadWatcherList); 535 DISABLE_RUNNABLE_METHOD_REFCOUNT(ThreadWatcherList);
541 536
542 #endif // CHROME_BROWSER_METRICS_THREAD_WATCHER_H_ 537 #endif // CHROME_BROWSER_METRICS_THREAD_WATCHER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698