Display underlying errors to the user and improve Android boot error handling#127
Merged
Display underlying errors to the user and improve Android boot error handling#127
Conversation
lfroms
commented
Mar 12, 2026
Comment on lines
+63
to
+81
| try await withThrowingTaskGroup(of: Void.self) { group in | ||
| group.addTask { | ||
| while true { | ||
| if try firstLine(of: .adb(.getProp(serial: serial, property: "sys.boot_completed"))) == "1" { | ||
| return | ||
| } | ||
|
|
||
| try await Task.sleep(for: .seconds(1)) | ||
| } | ||
| } | ||
|
|
||
| group.addTask { | ||
| try await Task.sleep(for: .seconds(300)) | ||
| throw AdbBootTimedOutError() | ||
| } | ||
|
|
||
| try await group.next() | ||
| group.cancelAll() | ||
| } |
Member
Author
There was a problem hiding this comment.
Just a very Swift-y timeout mechanism. The first task to finish wins.
tmgsca
approved these changes
Mar 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this change accomplish?
This change accomplishes two things, both related to error handling:
How have you achieved it?
DiagnosticErrortype that wraps thrown errors and automatically pulls out information provided by shell command errors (currently standard error).wait-for-devicewas also added as previously this could hang indefinitelyHow can the change be tested?
Boot a few devices and ensure that they still boot as expected. Ensure that error messages that were previously displayed are still displayed (check things like invalid token, missing files, device issues, etc.) To see the new underlying errors, click "Show Details" in the error alert.