'Makes one run through the loop.'

def tick(self):

    if (self._current_iteration < self._loop_iterations):
        l.debug('Currently    at    iteration    %d    of    %d', self._current_iteration, self._loop_iterations)
        results = self._tick_loop(start=self.active_exits(reachable=True))
        l.debug('...    found    %d    exiting    paths', len(results.deviating))
        self.normal += results.deviating
        self.active = results.found
        self._current_iteration += 1
    else:
        all_exits = self.active_exits(reachable=True)
        l.debug('Unconstraining    %d    heads.', len(all_exits))
        for e in all_exits:
            self.forced += self.unconstrain_loop(e)
        self._done = True
