code: func FinalSave(saver statemanager.Saver, taskEngine engine.TaskEngine) error {
  	engineDisabled := make(chan error)
  
  	disableTimer := time.AfterFunc(engineDisableTimeout, func() {
  		engineDisabled <- errors.New("final save: timed out waiting for TaskEngine to settle")
  	})
  
  	go func() {
  		seelog.Debug("Shutting down task engine for final save")
  		taskEngine.Disable()
  		disableTimer.Stop()
  		engineDisabled <- nil
  	}()
  
  	disableErr := <-engineDisabled
  
  	stateSaved := make(chan error)
  	saveTimer := time.AfterFunc(finalSaveTimeout, func() {
  		stateSaved <- errors.New("final save: timed out trying to save to disk")
  	})
  	go func() {
  		seelog.Debug("Saving state before shutting down")
  		stateSaved <- saver.ForceSave()
  		saveTimer.Stop()
  	}()
  
  	saveErr := <-stateSaved
  
  	if disableErr != nil || saveErr != nil {
  		return apierrors.NewMultiError(disableErr, saveErr)
  	}
  	return nil
  }
docs: // FinalSave should be called immediately before exiting, and only before
  // exiting, in order to flush tasks to disk. It waits a short timeout for state
  // to settle if necessary. If unable to reach a steady-state and save within
  // this short timeout, it returns an error