code: def __next__(self):
      result = self.output_queue.get()
      if result is None:
          self.close()
          raise StopIteration()
      slot, result = result
      if IS_CUDA:
          stream = self.cuda_streams[slot]
          # We wait for the copy to be done
          self.current_stream.wait_stream(stream)
      return result
  
file_path: ffcv/ffcv/loader/epoch_iterator.py
imports: from collections import defaultdict
  from threading import Thread, Event
  from queue import Queue, Full
  from contextlib import nullcontext
  from typing import Sequence, TYPE_CHECKING
  import torch
  from ..traversal_order.quasi_random import QuasiRandom
  from ..utils import chunks
  from ..pipeline.compiler import Compiler
label_desc: Use image node_id 4 for calling the EpochIterator obj's underlying member method code with example usage: obj.__next__() and returns: result