class_docstr: :class:`Pod` is a thread/process- container of :class:`BaseRuntime`. It leverages :class:`multiprocessing.Process` to manage the lifecycle of a :class:`BaseRuntime` object in a robust way.
  
  A :class:`Pod` must be equipped with a proper :class:`Runtime` class to work.
docstr: Joins the Pod.
  This method calls :meth:`join` in :class:`multiprocesssing.Process`.
  
  :param args: extra positional arguments to pass to join
  :param kwargs: extra keyword arguments to pass to join
code: def join(self, *args, **kwargs):
      """Joins the Pod.
      This method calls :meth:`join` in :class:`multiprocesssing.Process`.
  
      :param args: extra positional arguments to pass to join
      :param kwargs: extra keyword arguments to pass to join
      """
      self.logger.debug(f"joining the process")
      self.worker.join(*args, **kwargs)
      if self.raft_worker is not None:
          self.raft_worker.join(*args, **kwargs)
      self.logger.debug(f"successfully joined the process")
  
imports: import argparse
  import copy
  import multiprocessing
  import time
  from abc import ABC, abstractmethod
  from typing import Optional
  from jina.constants import __ready_msg__, __stop_msg__, __windows__
  from jina.enums import PodRoleType
  from jina.excepts import RuntimeFailToStart, RuntimeRunForeverEarlyError
  from jina.helper import typename
  from jina.jaml import JAML
  from jina.logging.logger import JinaLogger
  from jina.orchestrate.pods.helper import ConditionalEvent, _get_event
  from jina.parsers.helper import _update_gateway_args
  from jina.serve.executors.run import run, run_raft
  from jina.constants import RAFT_TO_EXECUTOR_PORT
label_desc: Use image node_id 3 for calling the Pod obj's underlying member method code with example usage: obj.join() without return types