Fix: return failure when PhoneAPI times out #3136
Merged
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.
Fixes #3132.
In
notifyObservers()
, we loop through all the observers. Then the PhoneAPI’sonNotifiy()
got called, which then got closed incheckConnectionTimeout()
. Upon closing, it removed itself from the list of observers offromNumChanged
, where we were looping through. So the iterator got invalidated and that caused a memory corruption and a hardfault on the RP2040.Now the PhoneAPI returns a failure when this happens, such that the loop through the observers exits.
Also renamed
observed
toobservables
because it's a list ofObservable
.Also added debug configurations for the RP2040.