Make autoreload checking more robust #6132
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 No autoreload when saving a file on SAMD21 sometimes #6007.
Add reset for autoreload. De-request ticks.
Separate state a little more in autoreload.c
Rename some routines and variables.
Reset
_tick_event_channel
when ticks are disabled, in atmel_samd/supervisor/port.cAdd
PYEXEC_RELOAD
as a specific reason for a forced termination of code, instead of checking the exception.Remove redundant settings of
CIRCUITPY_AUTORELOAD_DELAY_MS
.The most vital changes are the autoreload reset, and perhaps the
_tick_event_channel
.Saving a file over and over again very quickly can still occasionally cause some filesystem corruption, though it seems rare. Interestingly, I found that increasing the autoreload timeout (
CIRCUITPY_AUTORELOAD_DELAY_MS
) from 0.5 to 1 second seems to help a lot for that. It may be that 1 second may be a more realistic waiting time for a write to finish. But it causes a noticeable difference in how fast the board seems to respond, so I did not include it in this PR. But it's something we should consider.