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

Unified Diff: chrome/browser/chromeos/file_manager/file_watcher.cc

Issue 2970653002: Reland of "file_manager: Migrate FILE thread to TaskScheduler" (Closed)
Patch Set: fix Created 3 years, 5 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: chrome/browser/chromeos/file_manager/file_watcher.cc
diff --git a/chrome/browser/chromeos/file_manager/file_watcher.cc b/chrome/browser/chromeos/file_manager/file_watcher.cc
index e169e9682fe14c0eadac7e665e6b507aec72525a..60f9a6e21913c0aba66abfa2659f45bd54b155fd 100644
--- a/chrome/browser/chromeos/file_manager/file_watcher.cc
+++ b/chrome/browser/chromeos/file_manager/file_watcher.cc
@@ -5,6 +5,8 @@
#include "chrome/browser/chromeos/file_manager/file_watcher.h"
#include "base/bind.h"
+#include "base/task_runner_util.h"
+#include "base/task_scheduler/post_task.h"
#include "content/public/browser/browser_thread.h"
#include "google_apis/drive/task_util.h"
@@ -18,7 +20,6 @@ namespace {
base::FilePathWatcher* CreateAndStartFilePathWatcher(
const base::FilePath& watch_path,
const base::FilePathWatcher::Callback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::FILE);
DCHECK(!callback.is_null());
std::unique_ptr<base::FilePathWatcher> watcher(new base::FilePathWatcher);
@@ -31,7 +32,9 @@ base::FilePathWatcher* CreateAndStartFilePathWatcher(
} // namespace
FileWatcher::FileWatcher(const base::FilePath& virtual_path)
- : local_file_watcher_(NULL),
+ : sequenced_task_runner_(base::CreateSequencedTaskRunnerWithTraits(
+ {base::MayBlock(), base::TaskPriority::USER_VISIBLE})),
+ local_file_watcher_(NULL),
virtual_path_(virtual_path),
weak_ptr_factory_(this) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
@@ -40,9 +43,7 @@ FileWatcher::FileWatcher(const base::FilePath& virtual_path)
FileWatcher::~FileWatcher() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- BrowserThread::DeleteSoon(BrowserThread::FILE,
- FROM_HERE,
- local_file_watcher_);
+ sequenced_task_runner_->DeleteSoon(FROM_HERE, local_file_watcher_);
}
void FileWatcher::AddExtension(const std::string& extension_id) {
@@ -86,14 +87,11 @@ void FileWatcher::WatchLocalFile(
DCHECK(!callback.is_null());
DCHECK(!local_file_watcher_);
- BrowserThread::PostTaskAndReplyWithResult(
- BrowserThread::FILE,
- FROM_HERE,
- base::Bind(&CreateAndStartFilePathWatcher,
- local_path,
+ base::PostTaskAndReplyWithResult(
+ sequenced_task_runner_.get(), FROM_HERE,
+ base::Bind(&CreateAndStartFilePathWatcher, local_path,
google_apis::CreateRelayCallback(file_watcher_callback)),
- base::Bind(&FileWatcher::OnWatcherStarted,
- weak_ptr_factory_.GetWeakPtr(),
+ base::Bind(&FileWatcher::OnWatcherStarted, weak_ptr_factory_.GetWeakPtr(),
callback));
}

Powered by Google App Engine
This is Rietveld 408576698