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

Unified Diff: chrome/browser/sync_file_system/drive_backend/sync_engine.cc

Issue 881203003: Suppress sequence checks in SyncFileSystem on the shutdown phase (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: +param comment Created 5 years, 11 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/sync_file_system/drive_backend/sync_engine.cc
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_engine.cc b/chrome/browser/sync_file_system/drive_backend/sync_engine.cc
index af03581ef117a326d620c13d72d2dc879d5bdfa4..890cfede523910bb2b34dff0f55b4e565a4e5a50 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_engine.cc
+++ b/chrome/browser/sync_file_system/drive_backend/sync_engine.cc
@@ -164,25 +164,6 @@ void DidRegisterOrigin(const base::TimeTicks& start_time,
callback.Run(status);
}
-template <typename T>
-void DeleteSoonHelper(scoped_ptr<T>) {}
-
-template <typename T>
-void DeleteSoon(const tracked_objects::Location& from_here,
- base::TaskRunner* task_runner,
- scoped_ptr<T> obj) {
- if (!obj)
- return;
-
- T* obj_ptr = obj.get();
- base::Closure deleter =
- base::Bind(&DeleteSoonHelper<T>, base::Passed(&obj));
- if (!task_runner->PostTask(from_here, deleter)) {
- obj_ptr->DetachFromSequence();
- deleter.Run();
- }
-}
-
} // namespace
scoped_ptr<SyncEngine> SyncEngine::CreateForBrowserContext(
@@ -218,6 +199,7 @@ scoped_ptr<SyncEngine> SyncEngine::CreateForBrowserContext(
new SyncEngine(ui_task_runner.get(),
worker_task_runner.get(),
drive_task_runner.get(),
+ worker_pool.get(),
GetSyncFileSystemDir(context->GetPath()),
task_logger,
notification_manager,
@@ -256,11 +238,10 @@ void SyncEngine::Reset() {
if (drive_service_)
drive_service_->RemoveObserver(this);
- DeleteSoon(FROM_HERE, worker_task_runner_.get(), sync_worker_.Pass());
- DeleteSoon(FROM_HERE, worker_task_runner_.get(), worker_observer_.Pass());
- DeleteSoon(FROM_HERE,
- worker_task_runner_.get(),
- remote_change_processor_on_worker_.Pass());
+ worker_task_runner_->DeleteSoon(FROM_HERE, sync_worker_.release());
+ worker_task_runner_->DeleteSoon(FROM_HERE, worker_observer_.release());
+ worker_task_runner_->DeleteSoon(FROM_HERE,
+ remote_change_processor_on_worker_.release());
drive_service_wrapper_.reset();
drive_service_.reset();
@@ -326,7 +307,8 @@ void SyncEngine::InitializeInternal(
drive_uploader_on_worker.Pass(),
task_logger_,
ui_task_runner_.get(),
- worker_task_runner_.get()));
+ worker_task_runner_.get(),
+ worker_pool_.get()));
worker_observer_.reset(new WorkerObserver(ui_task_runner_.get(),
weak_ptr_factory_.GetWeakPtr()));
@@ -736,6 +718,7 @@ SyncEngine::SyncEngine(
const scoped_refptr<base::SingleThreadTaskRunner>& ui_task_runner,
const scoped_refptr<base::SequencedTaskRunner>& worker_task_runner,
const scoped_refptr<base::SequencedTaskRunner>& drive_task_runner,
+ const scoped_refptr<base::SequencedWorkerPool>& worker_pool,
const base::FilePath& sync_file_system_dir,
TaskLogger* task_logger,
drive::DriveNotificationManager* notification_manager,
@@ -748,6 +731,7 @@ SyncEngine::SyncEngine(
: ui_task_runner_(ui_task_runner),
worker_task_runner_(worker_task_runner),
drive_task_runner_(drive_task_runner),
+ worker_pool_(worker_pool),
sync_file_system_dir_(sync_file_system_dir),
task_logger_(task_logger),
notification_manager_(notification_manager),

Powered by Google App Engine
This is Rietveld 408576698