| Index: chrome/browser/sync/glue/ui_model_worker.h
|
| diff --git a/chrome/browser/sync/glue/ui_model_worker.h b/chrome/browser/sync/glue/ui_model_worker.h
|
| index a9d35bdd50068f26d7052e01a497b71f790e9e6a..6008f6db712a956b2965e9006302f371fce75ec0 100644
|
| --- a/chrome/browser/sync/glue/ui_model_worker.h
|
| +++ b/chrome/browser/sync/glue/ui_model_worker.h
|
| @@ -7,10 +7,12 @@
|
| #pragma once
|
|
|
| #include "base/callback.h"
|
| +#include "base/compiler_specific.h"
|
| #include "base/synchronization/condition_variable.h"
|
| #include "base/synchronization/lock.h"
|
| #include "base/task.h"
|
| #include "chrome/browser/sync/engine/model_safe_worker.h"
|
| +#include "chrome/browser/sync/util/unrecoverable_error_info.h"
|
|
|
| namespace base {
|
| class WaitableEvent;
|
| @@ -36,10 +38,13 @@ class UIModelWorker : public browser_sync::ModelSafeWorker {
|
| // A simple task to signal a waitable event after Run()ning a Closure.
|
| class CallDoWorkAndSignalTask : public Task {
|
| public:
|
| - CallDoWorkAndSignalTask(Callback0::Type* work,
|
| - base::WaitableEvent* work_done,
|
| - UIModelWorker* scheduler)
|
| - : work_(work), work_done_(work_done), scheduler_(scheduler) {
|
| + CallDoWorkAndSignalTask(
|
| + const WorkCallback& work,
|
| + base::WaitableEvent* work_done,
|
| + UIModelWorker* scheduler,
|
| + UnrecoverableErrorInfo* error_info)
|
| + : work_(work), work_done_(work_done), scheduler_(scheduler),
|
| + error_info_(error_info) {
|
| }
|
| virtual ~CallDoWorkAndSignalTask() { }
|
|
|
| @@ -49,12 +54,14 @@ class UIModelWorker : public browser_sync::ModelSafeWorker {
|
| private:
|
| // Task data - a closure and a waitable event to signal after the work has
|
| // been done.
|
| - Callback0::Type* work_;
|
| + WorkCallback work_;
|
| base::WaitableEvent* work_done_;
|
|
|
| // The UIModelWorker responsible for scheduling us.
|
| UIModelWorker* const scheduler_;
|
|
|
| + UnrecoverableErrorInfo* error_info_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(CallDoWorkAndSignalTask);
|
| };
|
|
|
| @@ -65,8 +72,9 @@ class UIModelWorker : public browser_sync::ModelSafeWorker {
|
| void Stop();
|
|
|
| // ModelSafeWorker implementation. Called on syncapi SyncerThread.
|
| - virtual void DoWorkAndWaitUntilDone(Callback0::Type* work);
|
| - virtual ModelSafeGroup GetModelSafeGroup();
|
| + virtual UnrecoverableErrorInfo DoWorkAndWaitUntilDone(
|
| + const WorkCallback& work) OVERRIDE;
|
| + virtual ModelSafeGroup GetModelSafeGroup() OVERRIDE;
|
|
|
| // Upon receiving this idempotent call, the ModelSafeWorker can
|
| // assume no work will ever be scheduled again from now on. If it has any work
|
|
|