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

Unified Diff: chromeos/printing/ppd_cache.cc

Issue 2939373003: Convert PpdCache and PpdProvider to TaskScheduler. (Closed)
Patch Set: remove extra imports Created 3 years, 6 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: chromeos/printing/ppd_cache.cc
diff --git a/chromeos/printing/ppd_cache.cc b/chromeos/printing/ppd_cache.cc
index 44abfd9565168c4122bf1cf794be57929bea3c7b..0cc007925e374b366ecd38a8e37d805e6e003aac 100644
--- a/chromeos/printing/ppd_cache.cc
+++ b/chromeos/printing/ppd_cache.cc
@@ -15,6 +15,7 @@
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/synchronization/lock.h"
+#include "base/task_scheduler/post_task.h"
#include "base/threading/sequenced_task_runner_handle.h"
#include "base/threading/thread_restrictions.h"
#include "base/time/time.h"
@@ -30,16 +31,21 @@ namespace {
class PpdCacheImpl : public PpdCache {
public:
- PpdCacheImpl(const base::FilePath& cache_base_dir,
- const scoped_refptr<base::SequencedTaskRunner>& disk_task_runner)
- : cache_base_dir_(cache_base_dir), disk_task_runner_(disk_task_runner) {}
+ explicit PpdCacheImpl(const base::FilePath& cache_base_dir)
+ : cache_base_dir_(cache_base_dir),
+ fetch_task_runner_(base::CreateSequencedTaskRunnerWithTraits(
+ {base::TaskPriority::USER_VISIBLE,
+ base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN})),
+ store_task_runner_(base::CreateSequencedTaskRunnerWithTraits(
+ {base::TaskPriority::BACKGROUND,
+ base::TaskShutdownBehavior::BLOCK_SHUTDOWN})) {}
// Public API functions.
void Find(const std::string& key, const FindCallback& cb) override {
// Ensure the cache lives until the op is over.
AddRef();
++inflight_ops_;
- disk_task_runner_->PostTask(
+ fetch_task_runner_->PostTask(
FROM_HERE, base::Bind(&PpdCacheImpl::FindImpl, this, key,
base::SequencedTaskRunnerHandle::Get(), cb));
}
@@ -51,7 +57,7 @@ class PpdCacheImpl : public PpdCache {
const base::Callback<void()>& cb) override {
AddRef();
++inflight_ops_;
- disk_task_runner_->PostTask(
+ store_task_runner_->PostTask(
gab 2017/06/19 15:13:21 It's weird to run read/write on different sequence
skau 2017/06/19 23:31:08 I was able to convert the tasks to anonymous metho
FROM_HERE, base::Bind(&PpdCacheImpl::StoreImpl, this, key, contents,
base::SequencedTaskRunnerHandle::Get(), cb));
}
@@ -159,7 +165,8 @@ class PpdCacheImpl : public PpdCache {
int inflight_ops_ = 0;
base::FilePath cache_base_dir_;
- scoped_refptr<base::SequencedTaskRunner> disk_task_runner_;
+ scoped_refptr<base::SequencedTaskRunner> fetch_task_runner_;
+ scoped_refptr<base::SequencedTaskRunner> store_task_runner_;
DISALLOW_COPY_AND_ASSIGN(PpdCacheImpl);
};
@@ -167,11 +174,8 @@ class PpdCacheImpl : public PpdCache {
} // namespace
// static
-scoped_refptr<PpdCache> PpdCache::Create(
- const base::FilePath& cache_base_dir,
- scoped_refptr<base::SequencedTaskRunner> disk_task_runner) {
- return scoped_refptr<PpdCache>(
- new PpdCacheImpl(cache_base_dir, disk_task_runner));
+scoped_refptr<PpdCache> PpdCache::Create(const base::FilePath& cache_base_dir) {
+ return scoped_refptr<PpdCache>(new PpdCacheImpl(cache_base_dir));
}
} // namespace printing

Powered by Google App Engine
This is Rietveld 408576698