Execute the encompassed phase and save the result.

def _thread_proc(self):
    """Execute the encompassed phase and save the result."""
    # Call the phase, save the return value, or default it to CONTINUE.
    phase_return = self._phase_desc(self._test_state)
    if phase_return is None:
      phase_return = openhtf.PhaseResult.CONTINUE

    # If phase_return is invalid, this will raise, and _phase_execution_outcome
    # will get set to the InvalidPhaseResultError in _thread_exception instead.
    self._phase_execution_outcome = PhaseExecutionOutcome(phase_return)