code: def _push_next(self):
          
          r = next(self._iter, None)
          if r is None:
              return
          async_ret = self._worker_pool.apply_async(
              self._worker_fn, (r, self._batchify_fn, self._dataset))
          self._data_buffer[self._sent_idx] = async_ret
          self._sent_idx += 1
docs: Assign next batch workload to workers.