Revert "Delay initial accept() until server initialized"
This reverts commit 4ad4a11aa8106d98f2b78e738d88996a1fbbcd4b.
Reason for revert: BUG: 144355953
Change-Id: Icb3d87e1f697ff60fc1262798cb19be8705e3740
diff --git a/adb/client/main.cpp b/adb/client/main.cpp
index 5669a01..0c5c28f 100644
--- a/adb/client/main.cpp
+++ b/adb/client/main.cpp
@@ -137,10 +137,9 @@
auto start = std::chrono::steady_clock::now();
// If we told a previous adb server to quit because of version mismatch, we can get to this
- // point before it's finished exiting. Retry for a while to give it some time. Don't actually
- // accept any connections until adb_wait_for_device_initialization finishes below.
- while (install_listener(socket_spec, "*smartsocket*", nullptr, INSTALL_LISTENER_DISABLED,
- nullptr, &error) != INSTALL_STATUS_OK) {
+ // point before it's finished exiting. Retry for a while to give it some time.
+ while (install_listener(socket_spec, "*smartsocket*", nullptr, 0, nullptr, &error) !=
+ INSTALL_STATUS_OK) {
if (std::chrono::steady_clock::now() - start > 0.5s) {
LOG(FATAL) << "could not install *smartsocket* listener: " << error;
}
@@ -161,14 +160,12 @@
PLOG(FATAL) << "setsid() failed";
}
#endif
- }
- // Wait for the USB scan to complete before notifying the parent that we're up.
- // We need to perform this in a thread, because we would otherwise block the event loop.
- std::thread notify_thread([ack_reply_fd]() {
- adb_wait_for_device_initialization();
+ // Wait for the USB scan to complete before notifying the parent that we're up.
+ // We need to perform this in a thread, because we would otherwise block the event loop.
+ std::thread notify_thread([ack_reply_fd]() {
+ adb_wait_for_device_initialization();
- if (ack_reply_fd >= 0) {
// Any error output written to stderr now goes to adb.log. We could
// keep around a copy of the stderr fd and use that to write any errors
// encountered by the following code, but that is probably overkill.
@@ -194,13 +191,9 @@
}
unix_close(ack_reply_fd);
#endif
- }
- // We don't accept() client connections until this point: this way, clients
- // can't see wonky state early in startup even if they're connecting directly
- // to the server instead of going through the adb program.
- fdevent_run_on_main_thread([] { enable_daemon_sockets(); });
- });
- notify_thread.detach();
+ });
+ notify_thread.detach();
+ }
#if defined(__linux__)
// Write our location to .android/adb.$PORT, so that older clients can exec us.