If, by "closing Squeak", you mean an ungraceful termination via the OS-Window exit or termination of the process:
- Session resources remain in the server image until enough commits by other sessions exceeds a threshold whereby the stale session resources are reclaimed. - All uncommitted changes in the image are lost, of course. - The image restarts in its previous state.
If, by "closing Squeak", you mean gracefully using the World menu, "quit" without saving:
- Since open transactions must be aborted. A (resumable) warning is signaled if any session has an open transaction. - The session resources are cleaned up on the server. - Uncommitted object changes are persisted in the image file, of course.
If, by "closing Squeak" you mean using the World menu to "save and quit", the following additions apply to the above:
- While the image is sleeping on disk, many updates committed to the persistent model are by other sessions are possible. - The image is restarted in its previous state, persistent objects are throughout the image. The existing MagmaSession instances are still aware of those persistent objects, so it is able to establish a new connection. - But the image state could be way behind the current state of the repository. - Therefore, beginning in release 41, the reconnection process also includes a "super refresh", where every cached object is brought up to date from the server. This can add some time to the image startup since, if a lot of objects are behind, their updates must be downloaded. - All sessions which were connected when the image was saved will startup in this way.
Regards, Chris - Show quoted text -