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

Unified Diff: components/metrics/leak_detector/leak_detector.cc

Issue 2012393002: Leak detector posts notifications to task runner (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CHECK -> EXPECT_TRUE Created 4 years, 7 months 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 side-by-side diff with in-line comments
Download patch
Index: components/metrics/leak_detector/leak_detector.cc
diff --git a/components/metrics/leak_detector/leak_detector.cc b/components/metrics/leak_detector/leak_detector.cc
index 518047e994a940d20b5b6a4fc2bb59049ad6dd08..b90d21833221c1627987e8aa6d19643cb15dde7a 100644
--- a/components/metrics/leak_detector/leak_detector.cc
+++ b/components/metrics/leak_detector/leak_detector.cc
@@ -11,12 +11,12 @@
#include "base/allocator/allocator_extension.h"
#include "base/bind.h"
#include "base/lazy_instance.h"
+#include "base/location.h"
#include "base/logging.h"
#include "base/numerics/safe_conversions.h"
#include "base/threading/thread_local.h"
#include "components/metrics/leak_detector/custom_allocator.h"
#include "components/metrics/leak_detector/leak_detector_impl.h"
-#include "content/public/browser/browser_thread.h"
#if defined(OS_CHROMEOS)
#include <link.h> // for dl_iterate_phdr
@@ -160,7 +160,8 @@ LeakDetector* LeakDetector::GetInstance() {
return g_instance.Pointer();
}
-void LeakDetector::Init(const MemoryLeakReportProto::Params& params) {
+void LeakDetector::Init(const MemoryLeakReportProto::Params& params,
+ scoped_refptr<base::TaskRunner> task_runner) {
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK_GT(params.sampling_rate(), 0);
@@ -176,6 +177,8 @@ void LeakDetector::Init(const MemoryLeakReportProto::Params& params) {
dl_iterate_phdr(IterateLoadedObjects, &mapping);
#endif // defined(OS_CHROMEOS)
+ task_runner_ = task_runner;
+
// CustomAllocator can use the default allocator, as long as the hook
// functions can handle recursive calls.
leak_detector::CustomAllocator::Initialize();
@@ -320,11 +323,10 @@ void LeakDetector::NotifyObservers(
if (reports.empty())
return;
- if (!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)) {
- content::BrowserThread::PostTask(
- content::BrowserThread::UI, FROM_HERE,
- base::Bind(&LeakDetector::NotifyObservers, base::Unretained(this),
- reports));
+ if (!task_runner_->RunsTasksOnCurrentThread()) {
+ task_runner_->PostTask(FROM_HERE,
+ base::Bind(&LeakDetector::NotifyObservers,
+ base::Unretained(this), reports));
return;
}
« no previous file with comments | « components/metrics/leak_detector/leak_detector.h ('k') | components/metrics/leak_detector/leak_detector_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698