code: def __del__(self):
      self.close()
  
file_path: hivemind/hivemind/p2p/p2p_daemon_bindings/control.py
imports: import asyncio
  from contextlib import asynccontextmanager, closing
  from typing import AsyncIterator, Awaitable, Callable, Dict, Iterable, Optional, Sequence, Tuple
  from uuid import UUID, uuid4
  from multiaddr import Multiaddr, protocols
  from hivemind.p2p.p2p_daemon_bindings.datastructures import PeerID, PeerInfo, StreamInfo
  from hivemind.p2p.p2p_daemon_bindings.utils import DispatchFailure, P2PDaemonError, P2PHandlerError, raise_if_failed, read_pbmsg_safe, write_pbmsg
  from hivemind.proto import p2pd_pb2
  from hivemind.utils.logging import get_logger
label_desc: Use image node_id 3 for calling the ControlClient obj's underlying member method code with example usage: obj.__del__() without return types