docs: def hybrid_coroutine_worker(selector, workers):
      """Runs a set of workers, all of them in the main thread.
      This runner is here for testing purposes.
  
      :param selector:
          A function returning a worker key, given a job.
      :type selector: function
  
      :param workers:
          A dict of workers.
      :type workers: dict
      """
      jobs = Queue()
  
      worker_source = {}
      worker_sink = {}
  
      for k, w in workers.items():
          worker_source[k], worker_sink[k] = w.setup()
  
      def get_result():
          source = jobs.source()
  
          for msg in source:
              key, job = msg
              worker = selector(job)
              if worker is None:
                  yield run_job(key, job)
              else:
                  # send the worker a job and wait for it to return
                  worker_sink[worker].send(msg)
                  result = next(worker_source[worker])
                  yield result
  
      return Connection(get_result, jobs.sink)