| Index: remoting/host/policy_hack/policy_watcher.cc
|
| diff --git a/remoting/host/policy_hack/policy_watcher.cc b/remoting/host/policy_hack/policy_watcher.cc
|
| index 8e30c241ae98da24b25d1da2d87a6db6c3dabfcd..e603cf5032459caaea20f88d40671df5d4aaa0cc 100644
|
| --- a/remoting/host/policy_hack/policy_watcher.cc
|
| +++ b/remoting/host/policy_hack/policy_watcher.cc
|
| @@ -12,6 +12,7 @@
|
| #include "base/location.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "base/single_thread_task_runner.h"
|
| +#include "base/synchronization/waitable_event.h"
|
| #include "base/time/time.h"
|
| #include "base/values.h"
|
| #include "remoting/host/dns_blackhole_checker.h"
|
| @@ -164,17 +165,19 @@
|
| StartWatchingInternal();
|
| }
|
|
|
| -void PolicyWatcher::StopWatching(const base::Closure& stopped_callback) {
|
| - task_runner_->PostTaskAndReply(
|
| - FROM_HERE, base::Bind(&PolicyWatcher::StopWatchingOnPolicyWatcherThread,
|
| - base::Unretained(this)),
|
| - stopped_callback);
|
| -}
|
| -
|
| -void PolicyWatcher::StopWatchingOnPolicyWatcherThread() {
|
| +void PolicyWatcher::StopWatching(base::WaitableEvent* done) {
|
| + if (!OnPolicyWatcherThread()) {
|
| + task_runner_->PostTask(FROM_HERE,
|
| + base::Bind(&PolicyWatcher::StopWatching,
|
| + base::Unretained(this), done));
|
| + return;
|
| + }
|
| +
|
| StopWatchingInternal();
|
| weak_factory_.InvalidateWeakPtrs();
|
| policy_callback_.Reset();
|
| +
|
| + done->Signal();
|
| }
|
|
|
| void PolicyWatcher::ScheduleFallbackReloadTask() {
|
|
|