class_docstr: Process objects represent activity that is run in a separate process
  
  The class is analogous to `threading.Thread`
class_docstr_tok: ["Process","objects","represent","activity","that","is","run","in","a","separate","process","The","class","is","analogous","to","`","threading.Thread","`"]
docstr: Wait until child process terminates
docstr_tok: ["Wait","until","child","process","terminates"]
code: def join(self, timeout=None):
      """
      Wait until child process terminates
      """
      self._check_closed()
      assert (
          self._parent_pid == os.getpid()
      ), "can only join a child process"
      assert self._popen is not None, "can only join a started process"
      res = self._popen.wait(timeout)
      if res is not None:
          _children.discard(self)
  
imports: import os
  import sys
  import signal
  import itertools
  import threading
  from _weakrefset import WeakSet
label_desc: Use image node_id 8 for calling the BaseProcess obj's underlying member method code with example usage: obj.join(timeout) without return types