class_docstr: Internal multi-worker iterator for DataLoader.
class_docstr_tok: ["Internal","multi-worker","iterator","for","DataLoader","."]
docstr: Assign next batch workload to workers.
docstr_tok: ["Assign","next","batch","workload","to","workers","."]
code: def _push_next(self):
      """Assign next batch workload to workers."""
      r = next(self._iter, None)
      if r is None:
          return
      if self._sent_idx % self._interval == 0:
          self._current_fn = np.random.choice(self._transform_fns)
      async_ret = self._worker_pool.apply_async(
          self._worker_fn, (r, self._current_fn, self._batchify_fn)
      )
      self._data_buffer[self._sent_idx] = async_ret
      self._sent_idx += 1
  
imports: import io
  import pickle
  import multiprocessing
  from multiprocessing.reduction import ForkingPickler
  import numpy
  from mxnet import nd
  from mxnet import context
  from mxnet.gluon.data.dataloader import DataLoader, _MultiWorkerIter
  from mxnet.gluon.data.dataloader import default_mp_batchify_fn, default_batchify_fn
label_desc: Use image node_id 2 for calling the _RandomTransformMultiWorkerIter obj's underlying member method code with example usage: obj._push_next() without return types