code: func (engine *DockerTaskEngine) filterTasksToStartUnsafe(tasks []*apitask.Task) []*apitask.Task {
  	var tasksToStart []*apitask.Task
  	for _, task := range tasks {
  		conts, ok := engine.state.ContainerMapByArn(task.Arn)
  		if !ok {
  			// task hasn't started processing, no need to check container status
  			tasksToStart = append(tasksToStart, task)
  			continue
  		}
  
  		for _, cont := range conts {
  			engine.synchronizeContainerStatus(cont, task)
  		}
  
  		tasksToStart = append(tasksToStart, task)
  
  		// Put tasks that are stopped by acs but hasn't been stopped in wait group
  		if task.GetDesiredStatus().Terminal() && task.GetStopSequenceNumber() != 0 {
  			engine.taskStopGroup.Add(task.GetStopSequenceNumber(), 1)
  		}
  	}
  
  	return tasksToStart
  }
docs: // filterTasksToStartUnsafe filters only the tasks that need to be started after
  // the agent has been restarted. It also synchronizes states of all of the containers
  // in tasks that need to be started.