class_docstr: Protocol mix in that will instruct runner.run to return a generator
  
  When this class is in the parent of a protocol given to runner.run (and
  some other functions/methods) the run-method will return a `Generator`,
  which yields whatever the protocol callbacks send to the `Generator`,
  via the `send_result`-method of this class.
  
  This allows to use runner.run() in constructs like:
  
      for result in runner.run(...):
          # do something, for example write to stdin of the subprocess
code: def __init__(self):
      self.result_queue = deque()
  
imports: from __future__ import annotations
  import logging
  import subprocess
  import warnings
  from collections import deque
  from locale import getpreferredencoding
  from typing import Any, Optional
  from datalad.utils import ensure_unicode
  from .exception import CommandError
label_desc: Use image node_id 1 to create a new GeneratorMixIn object  with example: obj = GeneratorMixIn()