summaryrefslogtreecommitdiffstats
path: root/sync/internal_api/public/engine/model_safe_worker.cc
diff options
context:
space:
mode:
authorzea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-13 00:58:14 +0000
committerzea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-13 00:58:14 +0000
commit7df2d35dd54de39672acd39ee8e7590479c89b95 (patch)
tree11b4127dc3bd3a292d17dd00bafafd043061d90f /sync/internal_api/public/engine/model_safe_worker.cc
parent66bfba6684d26e1eeaed4eacdb5a7e77f11c6725 (diff)
downloadchromium_src-7df2d35dd54de39672acd39ee8e7590479c89b95.zip
chromium_src-7df2d35dd54de39672acd39ee8e7590479c89b95.tar.gz
chromium_src-7df2d35dd54de39672acd39ee8e7590479c89b95.tar.bz2
Revert "Lock-free shutdown of profile sync service. Changes include:"
Introduced shutdown crashes. See bug crbug.com/259974 for discussion. Original codereview at https://chromiumcodereview.appspot.com/16770005 This also reverts "Disconnect non-frontend processor using the processor in " due to its depdency on the above patch. Original codereview at https://chromiumcodereview.appspot.com/5878607637381120 BUG=19757,259974 TBR=haitaol@chromium.org Review URL: https://codereview.chromium.org/18890004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211506 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.cc34
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