| 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),
|
|
|