IsDaemon.save_state could be more robust
- save_state triggers only when a setter of state is called (consult the
State
class and it'supdated
property). This trigger will not be set if an element of a list in state is altered (e.g.self._state["my_list"][3] = val"
). - save_state could be incorporated in the
IsDaemon.close
method, to ensure state is saved at shutdown