code: def _thread_body(self):
      from ...oscar.errors import ActorNotExist
      from ...session import SyncSession
  
      while True:
          key, session_ref, fut = self._queue.get()
          if key is None:
              break
  
          session = session_ref()
          if session is None:
              fut.set_result(None)
              continue
          try:
              s = SyncSession.from_isolated_session(session)
              s.decref(key)
              fut.set_result(None)
          except (
              RuntimeError,
              ConnectionError,
              KeyError,
              ActorNotExist,
          ):
              fut.set_result(None)
          except (
              Exception
          ) as ex:  # pragma: no cover  # noqa: E722  # nosec  # pylint: disable=bare-except
              fut.set_exception(ex)
          finally:
              del session
  
imports: import asyncio
  import atexit
  import concurrent.futures
  import queue
  import threading
  from typing import List
  from weakref import WeakKeyDictionary, ref
  from ...lib.aio import get_isolation
  from ...typing import SessionType, TileableType
  from ..mode import enter_mode
label_desc: Use image node_id 3 for calling the DecrefRunner obj's underlying member method code with example usage: obj._thread_body() without return types