def after_training_iteration(self, strategy, **kwargs):
        """
        Implements early stopping, determining how many subsequent times a
        batch can be used for updates. The dataloader contains only data for
        the current experience (batch) and the entire memory.
        Multiple iterations will hence result in the original batch with new
        exemplars sampled from the memory for each iteration.
        """
        self.it_cnt += 1
        if self.it_cnt == self.max_it_cnt:
            strategy.stop_training()  # Stop processing the new-data batch

        Implements early stopping, determining how many subsequent times a
        batch can be used for updates. The dataloader contains only data for
        the current experience (batch) and the entire memory.
        Multiple iterations will hence result in the original batch with new
        exemplars sampled from the memory for each iteration.
        
avalanche/training/plugins/cope.py