Fix actions that shouldn't happen while autosaving #1341
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.
While reviewing #1332, I noticed there is a potential for overlapping save operations under certain scenarios which could potentially result in file corruption. Additionally, #1332 suggests an undo operation was performed while an autosave was in progress. This could cause a crash when it tries to access something that may no longer exist.
I've added logic to internally flag when a save is in progress so that any additional calls to save while actively saving will wait until the flag is cleared.
Scenarios that should be covered by this fix
NOTE: It's hard to duplicate overlapping saving issues naturally. I mostly regression tested for normal saving and autosaving operations as well as a simple saving error (file locked) and ensuring T2D didn't completely freeze up.