# File lib/rubytorrent/controller.rb, line 61
  def each(in_fuseki, num_peers)
    if (@num_changed > POP_RECALC_THRESH) || @last_recalc.nil? || (((@num_changed > 0) || in_fuseki) && ((Time.now - @last_recalc) > POP_RECALC_LIMIT))
      rt_debug "* reordering pieces: (#@num_changed changed, last recalc #{(@last_recalc.nil? ? '(never)' : (Time.now - @last_recalc).round)}s ago)..."
      recalc_order(in_fuseki, num_peers)
    end

    @order.each { |i| yield i }
  end