| Index: components/sync/engine/browser_thread_model_worker.cc
|
| diff --git a/components/sync/engine/browser_thread_model_worker.cc b/components/sync/engine/browser_thread_model_worker.cc
|
| index 3b29d8505a09387f3950b52bc29fc0ca81b87f1c..a6d92c54d56cd14e69c57e83083991bed7815162 100644
|
| --- a/components/sync/engine/browser_thread_model_worker.cc
|
| +++ b/components/sync/engine/browser_thread_model_worker.cc
|
| @@ -4,45 +4,22 @@
|
|
|
| #include "components/sync/engine/browser_thread_model_worker.h"
|
|
|
| -#include "base/bind.h"
|
| -#include "base/callback.h"
|
| -#include "base/synchronization/waitable_event.h"
|
| -
|
| -using base::SingleThreadTaskRunner;
|
| +#include <utility>
|
|
|
| namespace syncer {
|
|
|
| BrowserThreadModelWorker::BrowserThreadModelWorker(
|
| - const scoped_refptr<SingleThreadTaskRunner>& runner,
|
| + const scoped_refptr<base::SingleThreadTaskRunner>& runner,
|
| ModelSafeGroup group)
|
| : runner_(runner), group_(group) {}
|
|
|
| -SyncerError BrowserThreadModelWorker::DoWorkAndWaitUntilDoneImpl(
|
| - const WorkCallback& work) {
|
| - SyncerError error = UNSET;
|
| +void BrowserThreadModelWorker::ScheduleWork(base::OnceClosure work) {
|
| if (runner_->BelongsToCurrentThread()) {
|
| DLOG(WARNING) << "Already on thread " << runner_;
|
| - return work.Run();
|
| - }
|
| -
|
| - // Signaled when the task is deleted, i.e. after it runs or when it is
|
| - // abandoned.
|
| - base::WaitableEvent work_done_or_abandoned(
|
| - base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| - base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| -
|
| - if (!runner_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(
|
| - &BrowserThreadModelWorker::CallDoWorkAndSignalTask, this, work,
|
| - base::Passed(syncer::ScopedEventSignal(&work_done_or_abandoned)),
|
| - &error))) {
|
| - DLOG(WARNING) << "Failed to post task to runner " << runner_;
|
| - error = CANNOT_DO_WORK;
|
| - return error;
|
| + std::move(work).Run();
|
| + } else {
|
| + runner_->PostTask(FROM_HERE, std::move(work));
|
| }
|
| - work_done_or_abandoned.Wait();
|
| - return error;
|
| }
|
|
|
| ModelSafeGroup BrowserThreadModelWorker::GetModelSafeGroup() {
|
| @@ -55,14 +32,4 @@ bool BrowserThreadModelWorker::IsOnModelThread() {
|
|
|
| BrowserThreadModelWorker::~BrowserThreadModelWorker() {}
|
|
|
| -void BrowserThreadModelWorker::CallDoWorkAndSignalTask(
|
| - const WorkCallback& work,
|
| - syncer::ScopedEventSignal scoped_event_signal,
|
| - SyncerError* error) {
|
| - DCHECK(runner_->BelongsToCurrentThread());
|
| - if (!IsStopped())
|
| - *error = work.Run();
|
| - // The event in |scoped_event_signal| is signaled at the end of this scope.
|
| -}
|
| -
|
| } // namespace syncer
|
|
|