code: def add(self, parent_task_id, command):
          
          task_id = self._claim_next_id()
          self.waiting_task_list.add(Task(task_id, parent_task_id, command))
          return task_id
docs: Create a task for the command that will wait for parent_task_id before starting.
          :param parent_task_id: int: id of task to wait for or None if it can start immediately
          :param command: TaskCommand: contains data function to run
          :return: int: task id we created for this command