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.
When autoreload detects a modified file it clears out the
sys.modules
and then reloads just the session that detected the changed file. Subsequent sessions that try to detect the changed file will then no longer find the changed module in thesys.modules
(meaning they can't detect a change), or they will find that the already restarted sessions has already repopulatedsys.modules
and delete that newly loaded module (which will potentially break the already restarted session). In the new setup whenever any session detects that a module was changed it immediately halts the watchers on other threads and then reloads all sessions.This has the potential to fail for sessions that do not have a frontend connected (since the reload mechanism is triggered by refreshing the browser window) and those sessions will stick around. Someone could in theory reconnect to such an old session programmatically but since autoreload is meant for interactive use this does not seem like a big worry.
Fixes #2531