Introducing the Session Save/Restore Initiative

The main issue is that the entire system is currently asynchronous:

  • user closes app A
  • app A starts saving its state while the windows are closed
  • app A relinquishes the name on the session bus
  • user starts app A again
  • the system instantiates app A while the previous instance is still busy saving state
  • there is no state for the new app A instance to restore
  • the state for the old app A instance is dropped

This will lead to data loss and an inconsistent state.

We discussed various approaches at the GTK hackfest in February, and we have a few ideas we wish to iterate early in the next development cycle, before committing to an API.

Getting things right on Linux is the priority; we are aware that other platforms have more synchronous approaches, so we need to ensure that Linux is covered.