code: func (task *Task) updateTaskDesiredStatusUnsafe() {
  	seelog.Debugf("Updating task: [%s]", task.stringUnsafe())
  
  	// A task's desired status is stopped if any essential container is stopped
  	// Otherwise, the task's desired status is unchanged (typically running, but no need to change)
  	for _, cont := range task.Containers {
  		if cont.Essential && (cont.KnownTerminal() || cont.DesiredTerminal()) {
  			seelog.Debugf("Updating task desired status to stopped because of container: [%s]; task: [%s]",
  				cont.Name, task.stringUnsafe())
  			task.DesiredStatusUnsafe = apitaskstatus.TaskStopped
  		}
  	}
  }
docs: // updateTaskDesiredStatusUnsafe determines what status the task should properly be at based on the containers' statuses
  // Invariant: task desired status must be stopped if any essential container is stopped