code: def _worker(reader: DatasetReader,
              input_queue: Queue,
              output_queue: Queue,
              index: int) -> None:
      
      # Keep going until you get a file_path that's None.
      while True:
          file_path = input_queue.get()
          if file_path is None:
              # Put my index on the queue to signify that I'm finished
              output_queue.put(index)
              break
  
          logger.info(f"reading instances from {file_path}")
          for instance in reader.read(file_path):
              output_queue.put(instance)
docs: A worker that pulls filenames off the input queue, uses the dataset reader
      to read them, and places the generated instances on the output queue.
      When there are no filenames left on the input queue, it puts its ``index``
      on the output queue and doesn't do anything else.