From 917045222a69021eb36aea96708649c709685509 Mon Sep 17 00:00:00 2001
From: Nick Kralevich <nnk@google.com>
Date: Thu, 24 Oct 2013 08:53:48 -0700
Subject: [PATCH] Don't return immediately from reboot commands.

The reboot commands return too fast, interfering with testing.
Add a pause(), which will allow the device time to complete the
reboot.

Change-Id: Ie9cc6eea67b7ff662ec71ea2329cbb94f8d55404
Bug: 11369303
---
 adb/services.c  | 4 ++++
 reboot/reboot.c | 5 +++++
 2 files changed, 9 insertions(+)

diff --git a/adb/services.c b/adb/services.c
index f0d587817e..951048e584 100644
--- a/adb/services.c
+++ b/adb/services.c
@@ -144,7 +144,11 @@ void reboot_service(int fd, void *arg)
     if (ret < 0) {
         snprintf(buf, sizeof(buf), "reboot failed: %d\n", ret);
         writex(fd, buf, strlen(buf));
+        goto cleanup;
     }
+    // Don't return early. Give the reboot command time to take effect
+    // to avoid messing up scripts which do "adb reboot && adb wait-for-device"
+    while(1) { pause(); }
 cleanup:
     free(arg);
     adb_close(fd);
diff --git a/reboot/reboot.c b/reboot/reboot.c
index 0e5170d425..d9a422764d 100644
--- a/reboot/reboot.c
+++ b/reboot/reboot.c
@@ -68,6 +68,11 @@ int main(int argc, char *argv[])
         perror("reboot");
         exit(EXIT_FAILURE);
     }
+
+    // Don't return early. Give the reboot command time to take effect
+    // to avoid messing up scripts which do "adb shell reboot && adb wait-for-device"
+    while(1) { pause(); }
+
     fprintf(stderr, "Done\n");
     return 0;
 }
-- 
GitLab