diff options
-rw-r--r-- | adb/services.c | 4 | ||||
-rw-r--r-- | reboot/reboot.c | 5 |
2 files changed, 9 insertions, 0 deletions
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) | |||
144 | if (ret < 0) { | 144 | if (ret < 0) { |
145 | snprintf(buf, sizeof(buf), "reboot failed: %d\n", ret); | 145 | snprintf(buf, sizeof(buf), "reboot failed: %d\n", ret); |
146 | writex(fd, buf, strlen(buf)); | 146 | writex(fd, buf, strlen(buf)); |
147 | goto cleanup; | ||
147 | } | 148 | } |
149 | // Don't return early. Give the reboot command time to take effect | ||
150 | // to avoid messing up scripts which do "adb reboot && adb wait-for-device" | ||
151 | while(1) { pause(); } | ||
148 | cleanup: | 152 | cleanup: |
149 | free(arg); | 153 | free(arg); |
150 | adb_close(fd); | 154 | 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[]) | |||
68 | perror("reboot"); | 68 | perror("reboot"); |
69 | exit(EXIT_FAILURE); | 69 | exit(EXIT_FAILURE); |
70 | } | 70 | } |
71 | |||
72 | // Don't return early. Give the reboot command time to take effect | ||
73 | // to avoid messing up scripts which do "adb shell reboot && adb wait-for-device" | ||
74 | while(1) { pause(); } | ||
75 | |||
71 | fprintf(stderr, "Done\n"); | 76 | fprintf(stderr, "Done\n"); |
72 | return 0; | 77 | return 0; |
73 | } | 78 | } |