blob: 02036d500f845f4953034412418b3e6ebbcfc3c7 [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "sync/internal_api/public/engine/passive_model_worker.h"
#include "base/message_loop/message_loop.h"
namespace syncer {
PassiveModelWorker::PassiveModelWorker(const base::MessageLoop* sync_loop,
WorkerLoopDestructionObserver* observer)
: ModelSafeWorker(observer),
sync_loop_(sync_loop) {
}
PassiveModelWorker::~PassiveModelWorker() {
}
void PassiveModelWorker::RegisterForLoopDestruction() {
base::MessageLoop::current()->AddDestructionObserver(this);
SetWorkingLoopToCurrent();
}
SyncerError PassiveModelWorker::DoWorkAndWaitUntilDoneImpl(
const WorkCallback& work) {
DCHECK_EQ(base::MessageLoop::current(), sync_loop_);
// Simply do the work on the current thread.
return work.Run();
}
ModelSafeGroup PassiveModelWorker::GetModelSafeGroup() {
return GROUP_PASSIVE;
}
} // namespace syncer