code: def _set_exit_timeout(self, timeout, reason):
      
      self._exit_timeout_start_time = time.time()
      self._exit_timeout = timeout
      self._exit_reason = reason
docs: Set a timeout for the remainder of the session, along with an exception to raise.
      which is implemented by NailgunProtocol.
  
      This method may be called by a signal handler to set a timeout for the remainder of the
      session. If the session completes before the timeout does, the exception in `reason` is
      raised. Otherwise, `NailgunProtocol.ProcessStreamTimeout` is raised.
  
      :param float timeout: The length of time to time out, in seconds.
      :param Exception reason: The exception to raise if the session completes before the timeout
                               occurs.