class_docstr: Class representing a reference to a SageMaker job result.
  
  Reference to the SageMaker job created as a result of the remote function run. The job may
  or may not have finished running.
class_docstr_tok: ["Class","representing","a","reference","to","a","SageMaker","job","result",".","Reference","to","the","SageMaker","job","created","as","a","result","of","the","remote","function","run",".","The","job","may","or","may","not","have","finished","running","."]
docstr: Start and record the newly created job in the future object.
  
  The job is recorded if one is successfully started. Otherwise, the exception is
  recorded. The state update is broadcast to other waiting threads.
docstr_tok: ["Start","and","record","the","newly","created","job","in","the","future","object",".","The","job","is","recorded","if","one","is","successfully","started",".","Otherwise",",","the","exception","is","recorded",".","The","state","update","is","broadcast","to","other","waiting","threads","."]
code: def _start_and_notify(
      self,
      job_settings: _JobSettings,
      func,
      func_args,
      func_kwargs,
      run_info=None,
  ):
      """Start and record the newly created job in the future object.
  
      The job is recorded if one is successfully started. Otherwise, the exception is
      recorded. The state update is broadcast to other waiting threads.
      """
      with self._condition:
          if self._state in [_PENDING]:
              try:
                  self._job = _Job.start(
                      job_settings,
                      func,
                      func_args,
                      func_kwargs,
                      run_info,
                  )
              except (Exception,) as e:  # pylint: disable=broad-except
                  self._exception = e
                  self._state = _FINISHED
                  self._condition.notify_all()
                  return None
  
              self._state = _RUNNING
              self._condition.notify_all()
              return self._job
          return None
  
imports: from __future__ import absolute_import
  from concurrent.futures import ThreadPoolExecutor
  from collections import deque
  import time
  import threading
  from typing import Callable, Dict, List, Optional, Tuple, Any, Union
  import functools
  import itertools
  import inspect
  from botocore.exceptions import ClientError
  from sagemaker.exceptions import UnexpectedStatusException
  from sagemaker.experiments._run_context import _RunContext
  import sagemaker.remote_function.core.serialization
  from sagemaker.remote_function.errors import RemoteFunctionError, ServiceError, DeserializationError
  from sagemaker.remote_function.core.stored_function import RESULTS_FOLDER, EXCEPTION_FOLDER
  from sagemaker.remote_function.runtime_environment.runtime_environment_manager import RuntimeEnvironmentError
  from sagemaker.session import Session
  from sagemaker.s3 import s3_path_join
  from sagemaker.remote_function.job import _JobSettings, _Job, _RunInfo
  from sagemaker.remote_function import logging_config
  from sagemaker.utils import name_from_base, base_from_name
  from sagemaker.remote_function.spark_config import SparkConfig
  from sagemaker.remote_function.custom_file_filter import CustomFileFilter
label_desc: Use image node_id 3 for calling the Future obj's underlying member method code with example usage: obj._start_and_notify(job_settings, func, func_args, func_kwargs, run_info) and returns: None, self, None