agent/statemanager/state_manager.go
func (manager *basicStateManager) ForceSave() error {
	manager.savingLock.Lock()
	defer manager.savingLock.Unlock()
	log.Info("Saving state!")
	s := manager.state
	s.Version = ECSDataVersion

	data, err := json.Marshal(s)
	if err != nil {
		log.Error("Error saving state; could not marshal data; this is odd", "err", err)
		return err
	}
	return manager.writeFile(data)
}
func (manager *basicStateManager) ForceSave() error {
	manager.savingLock.Lock()
	defer manager.savingLock.Unlock()
	log.Info("Saving state!")
	s := manager.state
	s.Version = ECSDataVersion

	data, err := json.Marshal(s)
	if err != nil {
		log.Error("Error saving state; could not marshal data; this is odd", "err", err)
		return err
	}
	return manager.writeFile(data)
}
func ( manager * basicStateManager ) ForceSave ( ) error { manager . savingLock . Lock ( ) defer manager . savingLock . Unlock ( ) log . Info ( " " ) s := manager . state s . Version = ECSDataVersion data , err := json . Marshal ( s ) if err != nil { log . Error ( " " , " " , err ) return err } return manager . writeFile ( data ) }
// ForceSave saves the given State to a file. It is an atomic operation on POSIX
// systems (by Renaming over the target file).
// This function logs errors at will and does not necessarily expect the caller
// to handle the error because there's little a caller can do in general other
// than just keep going.
// In addition, the StateManager internally buffers save requests in order to
// only save at most every STATE_SAVE_INTERVAL.
ForceSave saves the given State to a file . It is an atomic operation on POSIX systems ( by Renaming over the target file ) . This function logs errors at will and does not necessarily expect the caller to handle the error because there s little a caller can do in general other than just keep going . In addition the StateManager internally buffers save requests in order to only save at most every STATE_SAVE_INTERVAL .