diff options
author | earthdok@chromium.org <earthdok@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-25 19:12:17 +0000 |
---|---|---|
committer | earthdok@chromium.org <earthdok@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-25 19:12:17 +0000 |
commit | bfd80f0bbc586d6254724530c1dbe376fd18e7eb (patch) | |
tree | f2bbe743018b4bc5ffef0c67e7a45805ac520aa5 /sync/internal_api/public/engine/model_safe_worker.cc | |
parent | aaffe1b11632e13935ef54148bfd6373e2c08cd7 (diff) | |
download | chromium_src-bfd80f0bbc586d6254724530c1dbe376fd18e7eb.zip chromium_src-bfd80f0bbc586d6254724530c1dbe376fd18e7eb.tar.gz chromium_src-bfd80f0bbc586d6254724530c1dbe376fd18e7eb.tar.bz2 |
Revert 213642 "Lock-free shutdown of profile sync service. Chang..."
Reverting due to memory leaks.
BUG=264325
> Lock-free shutdown of profile sync service. Changes include:
> * Disconnect non-frontend processor/associator to stop accessing directory
> so that sync backend can be shut down without waiting.
> * Change non-frontend controller so that creation/destruction of
> processor/associator doesn't depend on valid controller. So
> scoped wait on stopping controller can be removed.
> * Move sync thread to PSS. It's created when starting first backend and
> destroyed on last browser thread.
>
> BUG=19757
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=210333
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=210955
>
> Review URL: https://chromiumcodereview.appspot.com/16770005
TBR=haitaol@chromium.org
Review URL: https://codereview.chromium.org/20374005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@213671 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/internal_api/public/engine/model_safe_worker.cc')
-rw-r--r-- | sync/internal_api/public/engine/model_safe_worker.cc | 34 |
1 files changed, 1 insertions, 33 deletions
diff --git a/sync/internal_api/public/engine/model_safe_worker.cc b/sync/internal_api/public/engine/model_safe_worker.cc index 7179ed5..44e0a24 100644 --- a/sync/internal_api/public/engine/model_safe_worker.cc +++ b/sync/internal_api/public/engine/model_safe_worker.cc @@ -4,7 +4,6 @@ #include "sync/internal_api/public/engine/model_safe_worker.h" -#include "base/bind.h" #include "base/json/json_writer.h" #include "base/memory/scoped_ptr.h" #include "base/values.h" @@ -85,9 +84,7 @@ std::string ModelSafeGroupToString(ModelSafeGroup group) { ModelSafeWorker::ModelSafeWorker(WorkerLoopDestructionObserver* observer) : stopped_(false), work_done_or_stopped_(false, false), - observer_(observer), - working_loop_(NULL), - working_loop_set_wait_(true, false) {} + observer_(observer) {} ModelSafeWorker::~ModelSafeWorker() {} @@ -138,33 +135,4 @@ void ModelSafeWorker::WillDestroyCurrentMessageLoop() { observer_->OnWorkerLoopDestroyed(GetModelSafeGroup()); } -void ModelSafeWorker::SetWorkingLoopToCurrent() { - DCHECK(!working_loop_); - working_loop_ = base::MessageLoop::current(); - working_loop_set_wait_.Signal(); -} - -void ModelSafeWorker::UnregisterForLoopDestruction( - base::Callback<void(ModelSafeGroup)> unregister_done_callback) { - // Ok to wait until |working_loop_| is set because this is called on sync - // loop. - working_loop_set_wait_.Wait(); - - // Should be called on sync loop. - DCHECK_NE(base::MessageLoop::current(), working_loop_); - DCHECK(working_loop_); - working_loop_->PostTask( - FROM_HERE, - base::Bind(&ModelSafeWorker::UnregisterForLoopDestructionAsync, - this, unregister_done_callback)); -} - -void ModelSafeWorker::UnregisterForLoopDestructionAsync( - base::Callback<void(ModelSafeGroup)> unregister_done_callback) { - DCHECK(stopped_); - DCHECK_EQ(base::MessageLoop::current(), working_loop_); - base::MessageLoop::current()->RemoveDestructionObserver(this); - unregister_done_callback.Run(GetModelSafeGroup()); -} - } // namespace syncer |