Index: chrome/browser/metrics/thread_watcher.cc |
=================================================================== |
--- chrome/browser/metrics/thread_watcher.cc (revision 117912) |
+++ chrome/browser/metrics/thread_watcher.cc (working copy) |
@@ -855,12 +855,27 @@ |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
jar (doing other things)
2012/01/18 17:24:44
FYI: This is an assertion that is failing on the t
ramant (doing other things)
2012/01/18 20:45:30
It was being run on Test thread. The DCHECK was wr
|
if (startup_watchdog_) { |
startup_watchdog_->Disarm(); |
+ startup_watchdog_->Cleanup(); |
+ DeleteStartupWatchdog(); |
+ } |
+} |
+ |
+void StartupTimeBomb::DeleteStartupWatchdog() { |
+ DCHECK_EQ(thread_id_, base::PlatformThread::CurrentId()); |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ if (startup_watchdog_->IsJoinable()) { |
// Allow the watchdog thread to shutdown on UI. Watchdog thread shutdowns |
// very fast. |
base::ThreadRestrictions::SetIOAllowed(true); |
delete startup_watchdog_; |
startup_watchdog_ = NULL; |
+ return; |
} |
+ MessageLoop::current()->PostDelayedTask( |
+ FROM_HERE, |
+ base::Bind(&StartupTimeBomb::DeleteStartupWatchdog, |
+ base::Unretained(this)), |
+ base::TimeDelta::FromSeconds(10).InMilliseconds()); |
} |
// static |