code: func ResetExecutionTimeout(c context.Context, e *model.Execution) error {
  	howLong := time.Duration(0)
  	switch e.State {
  	case dm.Execution_SCHEDULING:
  		howLong = e.TimeToStart
  	case dm.Execution_RUNNING:
  		howLong = e.TimeToRun
  	case dm.Execution_STOPPING:
  		howLong = e.TimeToStop
  	}
  	eid := e.GetEID()
  	key := model.ExecutionKeyFromID(c, eid)
  	if howLong == 0 {
  		return tumble.CancelNamedMutations(c, key, "timeout")
  	}
  	return tumble.PutNamedMutations(c, key, map[string]tumble.Mutation{
  		"timeout": &TimeoutExecution{eid, e.State, 0, clock.Now(c).UTC().Add(howLong)},
  	})
  }
docs: // ResetExecutionTimeout schedules a Timeout for this Execution. It inspects the
  // Execution's State to determine which timeout should be set, if any. If no
  // timeout should be active, this will cancel any existing timeouts for this
  // Execution.