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

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

Issue 288193002: [SyncFS] Construct and destruct sync_worker in worker_task_runner (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed RunLoop Created 6 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: 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 be3a51a18477c1f3ae973dd9d3b7ed15d643fffe..894d3d01775e07e3137e413e2c11265085dbc0c7 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_engine.cc
+++ b/chrome/browser/sync_file_system/drive_backend/sync_engine.cc
@@ -8,6 +8,7 @@
#include "base/bind.h"
#include "base/metrics/histogram.h"
+#include "base/run_loop.h"
tzik 2014/05/26 06:50:21 please drop this
peria 2014/05/26 07:55:09 Done.
#include "base/threading/sequenced_worker_pool.h"
#include "base/time/time.h"
#include "base/values.h"
@@ -66,7 +67,6 @@ class SyncEngine::WorkerObserver : public SyncWorker::Observer {
base::WeakPtr<SyncEngine> sync_engine)
: ui_task_runner_(ui_task_runner),
sync_engine_(sync_engine) {}
-
virtual ~WorkerObserver() {}
virtual void OnPendingFileListUpdated(int item_count) OVERRIDE {
@@ -183,6 +183,7 @@ scoped_ptr<SyncEngine> SyncEngine::CreateForBrowserContext(
notification_manager,
extension_service,
signin_manager));
+
sync_engine->Initialize(GetSyncFileSystemDir(context->GetPath()),
file_task_runner.get(),
NULL);
@@ -205,7 +206,8 @@ SyncEngine::~SyncEngine() {
if (notification_manager_)
notification_manager_->RemoveObserver(this);
- // TODO(tzik): Destroy |sync_worker_| and |worker_observer_| on the worker.
+ worker_task_runner_->DeleteSoon(FROM_HERE, worker_observer_.release());
+ worker_task_runner_->DeleteSoon(FROM_HERE, sync_worker_.release());
}
void SyncEngine::Initialize(const base::FilePath& base_dir,
@@ -239,7 +241,6 @@ void SyncEngine::Initialize(const base::FilePath& base_dir,
if (extension_service_)
extension_service_weak_ptr = extension_service_->AsWeakPtr();
- // TODO(peria): Use PostTask on |worker_task_runner_| to call this function.
sync_worker_ = SyncWorker::CreateOnWorker(
base_dir,
worker_observer_.get(),
@@ -251,6 +252,12 @@ void SyncEngine::Initialize(const base::FilePath& base_dir,
notification_manager_->AddObserver(this);
GetDriveService()->AddObserver(this);
net::NetworkChangeNotifier::AddNetworkChangeObserver(this);
+
+ worker_task_runner_->PostTask(
+ FROM_HERE,
+ base::Bind(&SyncWorker::Initialize,
+ sync_worker_->AsWeakPtr()));
tzik 2014/05/26 06:50:21 Unretained?
peria 2014/05/26 07:55:09 Done.
+
}
void SyncEngine::AddServiceObserver(SyncServiceObserver* observer) {

Powered by Google App Engine
This is Rietveld 408576698