Ah, not good!
Although now I have more questions...
In this example here:
i.e.
persist = system.util.persistent("someUniqueConstantName")
oldFileWatcher = persist.pop("fw")
persist['fw'] = FileWatcher(oldFileWatcher)
def getWatcher():
return persist['fw']
My understanding from this is that when the script engine starts up again after saving the project, the new engine gets the old engine's file watcher object in order to interrupt it, kill it, and then replace it. What I don't understand though is how two interpretters can be running side-by-side with the ability to talk to each other? i.e. how can "fw" in the new interpretter point to the old interpretter's object? To me, this is like the Designer's running Python code referencing the gateway's running Python code, which I didn't think was possible. e.g. like system.util.getGlobals('var1')
being accessible as the same object from both Designer and Gateway scopes. I'm obviously missing something fundamental here...
[I think it's time to finally do a course that goes through the nitty gritty of Python...]