micropython/aiorepl: Use blocking reads for raw_repl. #1005
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.
raw repl mode is generally used as a command channel where all stdio traffic is related directly to the raw commands and responses sent.
For this to work in aiorepl we need to ensure background tasks don't sent/receive anything on stdio else the command channel will be corrupted.
The simplest way to achieve this is to make the raw commands blocking rather than asyncio, assuming the user wont leave the device in raw mode for too long at any one time.