class_docstr: Step a single env in a separate process for lock free paralellism.
class_docstr_tok: ["Step","a","single","env","in","a","separate","process","for","lock","free","paralellism","."]
docstr: Send a close message to the external process and join it.
docstr_tok: ["Send","a","close","message","to","the","external","process","and","join","it","."]
code: def close(self) -> None:
      """Send a close message to the external process and join it."""
      try:
          self._conn.send((self._CLOSE, None))
          self._conn.close()
      except IOError:
          # The connection was already closed.
          pass
      if self._process.is_alive():
          self._process.join(5)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import atexit
  import sys
  import traceback
  from typing import Any, Callable, Sequence, Text, Union
  from absl import logging
  import cloudpickle
  import gin
  import numpy
  import tensorflow
  from tf_agents.environments import py_environment
  from tf_agents.system import system_multiprocessing
  from tf_agents.trajectories import time_step
  from tf_agents.typing import types
  from tf_agents.utils import nest_utils
label_desc: Use image node_id 10 for calling the ProcessPyEnvironment obj's underlying member method code with example usage: obj.close() without return types