Chromium Code Reviews| 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 |