Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(310)

Unified Diff: remoting/host/remoting_me2me_host.cc

Issue 639233002: Remote assistance on Chrome OS Part IV - It2MeHost (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move DEPS to remoting/host Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/host/remoting_me2me_host.cc
diff --git a/remoting/host/remoting_me2me_host.cc b/remoting/host/remoting_me2me_host.cc
index 6aa6b1e27eefdfead7a33b6ab89920cf4f6ba5cc..0a6466cab39a0b8a5fa246c20a42959c92369916 100644
--- a/remoting/host/remoting_me2me_host.cc
+++ b/remoting/host/remoting_me2me_host.cc
@@ -19,7 +19,6 @@
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
-#include "base/synchronization/waitable_event.h"
#include "base/threading/thread.h"
#include "build/build_config.h"
#include "crypto/nss_util.h"
@@ -260,6 +259,8 @@ class HostProcess
void ShutdownOnNetworkThread();
+ void PostPolicyWatcherShutdown();
+
// Crashes the process in response to a daemon's request. The daemon passes
// the location of the code that detected the fatal error resulted in this
// request.
@@ -376,15 +377,6 @@ HostProcess::~HostProcess() {
DCHECK(!config_watcher_);
DCHECK(!daemon_channel_);
DCHECK(!desktop_environment_factory_);
-
- // We might be getting deleted on one of the threads the |host_context| owns,
- // so we need to post it back to the caller thread to safely join & delete the
- // threads it contains. This will go away when we move to AutoThread.
- // |context_release()| will null |context_| before the method is invoked, so
- // we need to pull out the task-runner on which to call DeleteSoon first.
- scoped_refptr<base::SingleThreadTaskRunner> task_runner =
- context_->ui_task_runner();
- task_runner->DeleteSoon(FROM_HERE, context_.release());
Jamie 2014/10/14 01:18:42 Why has this been deleted?
kelvinp 2014/10/15 23:03:10 Good catch
}
bool HostProcess::InitWithCommandLine(const base::CommandLine* cmd_line) {
@@ -524,8 +516,8 @@ void HostProcess::OnConfigUpdated(
// already loaded so PolicyWatcher has to be started here. Separate policy
// loading from policy verifications and move |policy_watcher_|
// initialization to StartOnNetworkThread().
- policy_watcher_.reset(
- policy_hack::PolicyWatcher::Create(context_->file_task_runner()));
+ policy_watcher_.reset(policy_hack::PolicyWatcher::Create(
+ context_.get(), context_->file_task_runner()));
policy_watcher_->StartWatching(
base::Bind(&HostProcess::OnPolicyUpdate, base::Unretained(this)));
} else {
@@ -1411,24 +1403,25 @@ void HostProcess::ShutdownOnNetworkThread() {
state_ = HOST_STOPPED;
if (policy_watcher_.get()) {
- base::WaitableEvent done_event(true, false);
- policy_watcher_->StopWatching(&done_event);
- done_event.Wait();
- policy_watcher_.reset();
+ policy_watcher_->StopWatching(
+ base::Bind(&HostProcess::PostPolicyWatcherShutdown, this));
+ } else {
+ PostPolicyWatcherShutdown();
}
-
- config_watcher_.reset();
-
- // Complete the rest of shutdown on the main thread.
- context_->ui_task_runner()->PostTask(
- FROM_HERE,
- base::Bind(&HostProcess::ShutdownOnUiThread, this));
} else {
// This method is only called in STOPPING_TO_RESTART and STOPPING states.
NOTREACHED();
}
}
+void HostProcess::PostPolicyWatcherShutdown() {
rmsousa 2014/10/14 00:18:25 nit: OnPolicyWatcherShutdown. "Post" is an ambiguo
kelvinp 2014/10/15 23:03:10 Done.
+ policy_watcher_.reset();
+
+ // Complete the rest of shutdown on the main thread.
+ context_->ui_task_runner()->PostTask(
+ FROM_HERE, base::Bind(&HostProcess::ShutdownOnUiThread, this));
+}
+
void HostProcess::OnCrash(const std::string& function_name,
const std::string& file_name,
const int& line_number) {

Powered by Google App Engine
This is Rietveld 408576698