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

Unified Diff: tools/android/forwarder2/device_listener.cc

Issue 60033002: Make HostController/DeviceListener deletion fully synchronous. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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
« no previous file with comments | « tools/android/forwarder2/device_listener.h ('k') | tools/android/forwarder2/forwarder.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/android/forwarder2/device_listener.cc
diff --git a/tools/android/forwarder2/device_listener.cc b/tools/android/forwarder2/device_listener.cc
index 97131c8b2c985e3233fa93ca31848683c7b0f628..b48a7460ae8b9619b3d9ce242a144768eed0421a 100644
--- a/tools/android/forwarder2/device_listener.cc
+++ b/tools/android/forwarder2/device_listener.cc
@@ -35,15 +35,14 @@ scoped_ptr<DeviceListener> DeviceListener::Create(
listener_port = listener_socket->GetPort();
SendCommand(command::BIND_SUCCESS, listener_port, host_socket.get());
device_listener.reset(
- new DeviceListener(
- scoped_ptr<PipeNotifier>(new PipeNotifier()), listener_socket.Pass(),
- host_socket.Pass(), listener_port, error_callback));
+ new DeviceListener(listener_socket.Pass(), host_socket.Pass(),
+ listener_port, error_callback));
return device_listener.Pass();
}
DeviceListener::~DeviceListener() {
DCHECK(deletion_task_runner_->RunsTasksOnCurrentThread());
- exit_notifier_->Notify();
+ deletion_notifier_.Notify();
}
void DeviceListener::Start() {
@@ -58,13 +57,11 @@ void DeviceListener::SetAdbDataSocket(scoped_ptr<Socket> adb_data_socket) {
base::Unretained(this), base::Passed(&adb_data_socket)));
}
-DeviceListener::DeviceListener(scoped_ptr<PipeNotifier> pipe_notifier,
- scoped_ptr<Socket> listener_socket,
+DeviceListener::DeviceListener(scoped_ptr<Socket> listener_socket,
scoped_ptr<Socket> host_socket,
int port,
const ErrorCallback& error_callback)
: self_deleter_helper_(this, error_callback),
- exit_notifier_(pipe_notifier.Pass()),
listener_socket_(listener_socket.Pass()),
host_socket_(host_socket.Pass()),
listener_port_(port),
@@ -72,9 +69,8 @@ DeviceListener::DeviceListener(scoped_ptr<PipeNotifier> pipe_notifier,
thread_("DeviceListener") {
CHECK(host_socket_.get());
DCHECK(deletion_task_runner_.get());
- DCHECK(exit_notifier_.get());
- host_socket_->AddEventFd(exit_notifier_->receiver_fd());
- listener_socket_->AddEventFd(exit_notifier_->receiver_fd());
+ host_socket_->AddEventFd(deletion_notifier_.receiver_fd());
+ listener_socket_->AddEventFd(deletion_notifier_.receiver_fd());
}
void DeviceListener::AcceptNextClientSoon() {
@@ -119,11 +115,11 @@ void DeviceListener::AcceptClientOnInternalThread() {
void DeviceListener::OnAdbDataSocketReceivedOnInternalThread(
scoped_ptr<Socket> adb_data_socket) {
- adb_data_socket_.swap(adb_data_socket);
+ DCHECK(adb_data_socket);
SendCommand(command::ADB_DATA_SOCKET_SUCCESS, listener_port_,
host_socket_.get());
- CHECK(adb_data_socket_.get());
- StartForwarder(device_data_socket_.Pass(), adb_data_socket_.Pass());
+ forwarders_manager_.CreateAndStartNewForwarder(
+ device_data_socket_.Pass(), adb_data_socket.Pass());
AcceptNextClientSoon();
}
« no previous file with comments | « tools/android/forwarder2/device_listener.h ('k') | tools/android/forwarder2/forwarder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698