Extend the recent work to solidify the FS watcher #593
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.
Ultimately, deeper investigation has revealed that std::fs::copy will generate modification events on the source file (the file being copied) on some platforms. This has proven to be a source of difficulty for the FS watcher, and has lead to infinite build loops, despite the fact that none of the files / directories being watched were actually changed.
Here we implement a post-build cooldown interval of 1s. This ensures that in very fast builds, we do not end up receiving a modification event due to std::fs::copy (from the copy source).
Moreover, any FS events which have accumulated during the 1s cooldown will be purged. Altogether this will hopefully fully address the recursive build issue, and will hopefully not disrupt the development workflow.
Related Issues
Checklist