code: def _detach_session(self, session: SessionType):
      if session in self._executed_sessions:
          sessions = _cleaner._tileable_to_sessions.get(self, [])
          if sessions:
              sessions.remove(_TileableSession(self, session))
          if len(sessions) == 0:
              del _cleaner._tileable_to_sessions[self]
          self._executed_sessions.remove(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 8 for calling the _ExecutableMixin obj's underlying member method code with example usage: obj._detach_session(session) without return types