class_docstr: Iterates once over the DataLoader's dataset, as specified by the sampler.
class_docstr_tok: ["Iterates","once","over","the","DataLoader","'s","dataset",",","as","specified","by","the","sampler","."]
code: def _mark_worker_as_unavailable(self, worker_id, shutdown=False):
      # Mark a worker as having finished its work e.g., due to
      # exhausting an `IterableDataset`. This should be used only when this
      # `_MultiProcessingDataLoaderIter` is going to continue running.
  
      assert self._workers_status[worker_id] or (
          self._persistent_workers and shutdown
      )
  
      # Signal termination to that specific worker.
      q = self._index_queues[worker_id]
      # Indicate that no more data will be put on this queue by the current
      # process.
      q.put(None)
  
      # Note that we don't actually join the worker here, nor do we remove the
      # worker's pid from C side struct because (1) joining may be slow, and
      # (2) since we don't join, the worker may still raise error, and we
      # prefer capturing those, rather than ignoring them, even though they
      # are raised after the worker has finished its job.
      # Joinning is deferred to `_shutdown_workers`, which it is called when
      # all workers finish their jobs (e.g., `IterableDataset` replicas) or
      # when this iterator is garbage collected.
  
      self._workers_status[worker_id] = False
  
      assert self._workers_done_event.is_set() == shutdown
  
imports: import functools
  import itertools
  import logging
  import os
  import queue
  import threading
  import warnings
  from typing import Any, Callable, Iterable, TypeVar, Generic, List, Optional, Union
  import multiprocessing
  import torch
  import torch.distributed
  import torch.multiprocessing
  import torch.utils.data.graph_settings
  from torch._utils import ExceptionWrapper
  from .None import IterDataPipe, MapDataPipe, IterableDataset, Sampler, SequentialSampler, RandomSampler, BatchSampler, Dataset
  from torch.utils.data.datapipes.datapipe import _IterDataPipeSerializationWrapper, _MapDataPipeSerializationWrapper
  from .None import _utils
label_desc: Use image node_id 8 for calling the _MultiProcessingDataLoaderIter obj's underlying member method code with example usage: obj._mark_worker_as_unavailable(worker_id, shutdown) without return types