code: def _send_loop(self):
      while self.is_running:
          message = None
          try:
              # no sleep, since it's a block call with INTERVAL_SECONDS second timeout
              message = self.send_queue.get(True, INTERVAL_SECONDS)
          except Empty:
              # do nothing, if no command received.
              pass
          if message is not None:
              self._inner_send(message)
  
imports: import json
  import threading
  import time
  from abc import ABC, abstractmethod
  from queue import Empty, Queue
  from .log_utils import LogType, nni_log
  from .commands import CommandType
label_desc: Use image node_id 14 for calling the BaseChannel obj's underlying member method code with example usage: obj._send_loop() without return types