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 e603cf5032459caaea20f88d40671df5d4aaa0cc..8e30c241ae98da24b25d1da2d87a6db6c3dabfcd 100644 |
--- a/remoting/host/policy_hack/policy_watcher.cc |
+++ b/remoting/host/policy_hack/policy_watcher.cc |
@@ -12,7 +12,6 @@ |
#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" |
@@ -165,19 +164,17 @@ void PolicyWatcher::StartWatching(const PolicyCallback& policy_callback) { |
StartWatchingInternal(); |
} |
-void PolicyWatcher::StopWatching(base::WaitableEvent* done) { |
- if (!OnPolicyWatcherThread()) { |
- task_runner_->PostTask(FROM_HERE, |
- base::Bind(&PolicyWatcher::StopWatching, |
- base::Unretained(this), done)); |
- return; |
- } |
+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() { |
StopWatchingInternal(); |
weak_factory_.InvalidateWeakPtrs(); |
policy_callback_.Reset(); |
- |
- done->Signal(); |
} |
void PolicyWatcher::ScheduleFallbackReloadTask() { |