class_docstr: This contains the data structures to track the execution order. We track
  the pre-forward order on the *first* iteration for forward prefetching
  (which thus assumes static graph) and the post-forward order on *every*
  iteration for backward prefetching (which thus does not assume static
  graph but may be provide an incorrect order).
docstr: Advances the internal data structures per iteration. This should be
  called in the post-backward callback since that marks the true end of
  an iteration.
docstr_tok: ["Advances","the","internal","data","structures","per","iteration",".","This","should","be","called","in","the","post-backward","callback","since","that","marks","the","true","end","of","an","iteration","."]
code: def next_iter(self):
      """
      Advances the internal data structures per iteration. This should be
      called in the post-backward callback since that marks the true end of
      an iteration.
      """
      self._iter += 1
      self.handles_post_forward_order.clear()
      if self._checking_order:
          self.current_order_index = 0
          if self.warn_status == _ExecOrderWarnStatus.WARNING:
              self.warn_status = _ExecOrderWarnStatus.WARNED
  
imports: import itertools
  import warnings
  from enum import auto, Enum
  from typing import Dict, List, Optional, Tuple, Union
  import torch
  import torch.distributed
  import torch.distributed.fsdp._traversal_utils
  import torch.nn
  from torch.distributed.fsdp._common_utils import _FSDPState, _get_param_to_fqns
  from torch.distributed.fsdp._flat_param import FlatParamHandle
label_desc: Use image node_id 12 for calling the _ExecOrderData obj's underlying member method code with example usage: obj.next_iter() without return types