Index: content/browser/histogram_synchronizer.cc |
diff --git a/content/browser/histogram_synchronizer.cc b/content/browser/histogram_synchronizer.cc |
index ad4446e0b3173148268f54ed7737c6948b1ff924..ca85ad71d925da21e8d902074dc88d63a6f309e1 100644 |
--- a/content/browser/histogram_synchronizer.cc |
+++ b/content/browser/histogram_synchronizer.cc |
@@ -4,6 +4,8 @@ |
#include "content/browser/histogram_synchronizer.h" |
+#include <utility> |
+ |
#include "base/bind.h" |
#include "base/lazy_instance.h" |
#include "base/location.h" |
@@ -166,7 +168,6 @@ base::LazyInstance |
HistogramSynchronizer::HistogramSynchronizer() |
: lock_(), |
- callback_thread_(NULL), |
last_used_sequence_number_(kNeverUsableSequenceNumber), |
async_sequence_number_(kNeverUsableSequenceNumber) { |
HistogramController::GetInstance()->Register(this); |
@@ -176,7 +177,7 @@ HistogramSynchronizer::~HistogramSynchronizer() { |
RequestContext::OnShutdown(); |
// Just in case we have any pending tasks, clear them out. |
- SetCallbackTaskAndThread(NULL, base::Closure()); |
+ SetTaskRunnerAndCallback(nullptr, base::Closure()); |
} |
HistogramSynchronizer* HistogramSynchronizer::GetInstance() { |
@@ -205,25 +206,25 @@ void HistogramSynchronizer::FetchHistograms() { |
base::TimeDelta::FromMinutes(1)); |
} |
-void FetchHistogramsAsynchronously(base::MessageLoop* callback_thread, |
+void FetchHistogramsAsynchronously(scoped_refptr<base::TaskRunner> task_runner, |
const base::Closure& callback, |
base::TimeDelta wait_time) { |
- HistogramSynchronizer::FetchHistogramsAsynchronously( |
- callback_thread, callback, wait_time); |
+ HistogramSynchronizer::FetchHistogramsAsynchronously(std::move(task_runner), |
+ callback, wait_time); |
} |
// static |
void HistogramSynchronizer::FetchHistogramsAsynchronously( |
- base::MessageLoop* callback_thread, |
+ scoped_refptr<base::TaskRunner> task_runner, |
const base::Closure& callback, |
base::TimeDelta wait_time) { |
- DCHECK(callback_thread != NULL); |
+ DCHECK(task_runner); |
DCHECK(!callback.is_null()); |
HistogramSynchronizer* current_synchronizer = |
HistogramSynchronizer::GetInstance(); |
- current_synchronizer->SetCallbackTaskAndThread( |
- callback_thread, callback); |
+ current_synchronizer->SetTaskRunnerAndCallback(std::move(task_runner), |
+ callback); |
current_synchronizer->RegisterAndNotifyAllProcesses( |
HistogramSynchronizer::ASYNC_HISTOGRAMS, wait_time); |
@@ -284,45 +285,45 @@ void HistogramSynchronizer::OnHistogramDataCollected( |
request->DeleteIfAllDone(); |
} |
-void HistogramSynchronizer::SetCallbackTaskAndThread( |
- base::MessageLoop* callback_thread, |
+void HistogramSynchronizer::SetTaskRunnerAndCallback( |
+ scoped_refptr<base::TaskRunner> task_runner, |
const base::Closure& callback) { |
base::Closure old_callback; |
- base::MessageLoop* old_thread = NULL; |
+ scoped_refptr<base::TaskRunner> old_task_runner; |
{ |
base::AutoLock auto_lock(lock_); |
old_callback = callback_; |
callback_ = callback; |
- old_thread = callback_thread_; |
- callback_thread_ = callback_thread; |
+ old_task_runner = std::move(callback_task_runner_); |
+ callback_task_runner_ = std::move(task_runner); |
// Prevent premature calling of our new callbacks. |
async_sequence_number_ = kNeverUsableSequenceNumber; |
} |
// Just in case there was a task pending.... |
- InternalPostTask(old_thread, old_callback); |
+ InternalPostTask(std::move(old_task_runner), old_callback); |
} |
void HistogramSynchronizer::ForceHistogramSynchronizationDoneCallback( |
int sequence_number) { |
base::Closure callback; |
- base::MessageLoop* thread = NULL; |
+ scoped_refptr<base::TaskRunner> task_runner; |
{ |
base::AutoLock lock(lock_); |
if (sequence_number != async_sequence_number_) |
return; |
callback = callback_; |
- thread = callback_thread_; |
+ task_runner = std::move(callback_task_runner_); |
callback_.Reset(); |
- callback_thread_ = NULL; |
} |
- InternalPostTask(thread, callback); |
+ InternalPostTask(std::move(task_runner), callback); |
} |
-void HistogramSynchronizer::InternalPostTask(base::MessageLoop* thread, |
- const base::Closure& callback) { |
- if (callback.is_null() || !thread) |
+void HistogramSynchronizer::InternalPostTask( |
+ scoped_refptr<base::TaskRunner> task_runner, |
+ const base::Closure& callback) { |
+ if (callback.is_null() || !task_runner) |
return; |
- thread->task_runner()->PostTask(FROM_HERE, callback); |
+ task_runner->PostTask(FROM_HERE, callback); |
} |
int HistogramSynchronizer::GetNextAvailableSequenceNumber( |