Index: chrome/browser/task_manager/sampling/shared_sampler_win.cc |
diff --git a/chrome/browser/task_manager/sampling/shared_sampler_win.cc b/chrome/browser/task_manager/sampling/shared_sampler_win.cc |
index e54e2f8295795c7be25563d0f41d3d330498eecf..f87e71505f90a01957d12fc0c169061610bb7e58 100644 |
--- a/chrome/browser/task_manager/sampling/shared_sampler_win.cc |
+++ b/chrome/browser/task_manager/sampling/shared_sampler_win.cc |
@@ -369,9 +369,15 @@ void SharedSampler::Refresh(base::ProcessId process_id, int64_t refresh_flags) { |
base::Bind(&SharedSampler::RefreshOnWorkerThread, this), |
base::Bind(&SharedSampler::OnRefreshDone, this)); |
} else { |
+ // http://crbug.com/678471 |
// A group of consecutive Refresh calls should all specify the same refresh |
- // flags. |
- DCHECK_EQ(refresh_flags, refresh_flags_); |
+ // flags. Rarely RefreshOnWorkerThread could take a long time (> 1 sec), |
+ // long enough for a next refresh cycle to start before results are ready |
+ // from a previous cycle. In that case refresh_flags_ would still remain |
+ // set to the previous cycle refresh flags which might be different than |
+ // this cycle refresh flags if a column was added or removed between the two |
+ // cycles. The worst that could happen in that condition is that results for |
+ // a newly added column would be missing for one extra refresh cycle. |
} |
refresh_flags_ |= refresh_flags; |