From 917045222a69021eb36aea96708649c709685509 Mon Sep 17 00:00:00 2001 From: Nick Kralevich 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 f0d587817..951048e58 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 0e5170d42..d9a422764 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; }