Updating the project data associated with the current window causes Sublime to also update the underlying file if the project data changed. As such, if the project file associated with the current window is already open when you call set_project_data, Sublime will notice the file is different and either reload it automatically or ask you if you want to reload it and then do so.
There is no event that I’m aware of that directly tells you that a file has been reloaded, but the reload operation does trigger the on_modified event handler when the reload happens:
>>> proj_data = window.project_data()
>>> proj_data["settings"]["word_wrap"] = False
>>> window.set_project_data(proj_data)
reloading /home/tmartin/local/sublime_text_3_sandbox/Data/Packages/User/test.sublime-project
on_modified: /home/tmartin/local/sublime_text_3_sandbox/Data/Packages/User/test.sublime-project
on_modified: /home/tmartin/local/sublime_text_3_sandbox/Data/Packages/User/test.sublime-project
There is some delay there which I assume is because the inotify listener that notices the file changing does it’s own thing asynchronously. This delay is increased if the user has configured Sublime to not reload without prompting, as in that case you need to wait until the user responds as well.
What happens if the user modified the open project file but didn’t save it?
Also I hope by “all sublime-project views” you mean “the sublime-project view for the project associated with the current window”, otherwise your code is going to probably upset someone some day when suddenly an unrelated file they’re editing (say to copy/paste some data from) is just mysteriously closed.
Just out of curiosity, what exactly were you trying to achieve here?