code: def exit_actor():
      """Intentionally exit the current actor.
  
      This API can be used only inside an actor. Use ray.kill
      API if you'd like to kill an actor using actor handle.
  
      When the API is called, the actor raises an exception and exits.
      Any queued methods will fail. Any ``atexit``
      handlers installed in the actor will be run.
  
      Raises:
          TypeError: An exception is raised if this is a driver or this
              worker is not an actor.
      """
      worker = ray._private.worker.global_worker
      if (
          worker.mode == ray.WORKER_MODE
          and not worker.actor_id.is_nil()
      ):
          # In asyncio actor mode, we can't raise SystemExit because it will just
          # quit the asycnio event loop thread, not the main thread. Instead, we
          # raise a custom error to the main thread to tell it to exit.
          if worker.core_worker.current_actor_is_asyncio():
              raise AsyncioActorExit()
  
          # Set a flag to indicate this is an intentional actor exit. This
          # reduces log verbosity.
          raise_sys_exit_with_custom_error_message(
              "exit_actor() is called."
          )
      else:
          raise TypeError(
              "exit_actor API is called on a non-actor worker, "
              f"{worker.mode}. Call this API inside an actor methods"
              "if you'd like to exit the actor gracefully."
          )
  
imports: import inspect
  import logging
  import weakref
  from typing import Any, Dict, List, Optional, Union
  import ray._private.ray_constants
  import ray._private.signature
  import ray._private.worker
  import ray._raylet
  from ray import ActorClassID, Language, cross_language
  from ray._private import ray_option_utils
  from ray._private.async_compat import is_async_func
  from ray._private.auto_init_hook import wrap_auto_init
  from ray._private.client_mode_hook import client_mode_convert_actor, client_mode_hook, client_mode_should_convert
  from ray._private.inspect_util import is_class_method, is_function_or_method, is_static_method
  from ray._private.ray_option_utils import _warn_if_using_deprecated_placement_group
  from ray._private.utils import get_runtime_env_info, parse_runtime_env
  from ray._raylet import STREAMING_GENERATOR_RETURN, ObjectRefGenerator, PythonFunctionDescriptor, raise_sys_exit_with_custom_error_message
  from ray.exceptions import AsyncioActorExit
  from ray.util.annotations import DeveloperAPI, PublicAPI
  from ray.util.placement_group import _configure_placement_group_based_on_context
  from ray.util.scheduling_strategies import PlacementGroupSchedulingStrategy, SchedulingStrategyT
  from ray.util.tracing.tracing_helper import _inject_tracing_into_class, _tracing_actor_creation, _tracing_actor_method_invocation
label_desc: Use image node_id 5 for calling a global function with example usage: exit_actor() without return types