# File lib/new_relic/agent/threading/backtrace_node.rb, line 51
        def aggregate(backtrace)
          current = self

          depth = 0
          backtrace.reverse_each do |frame|
            break if depth >= MAX_THREAD_PROFILE_DEPTH

            existing_node = current.find_child(frame)
            if existing_node
              node = existing_node
            else
              node = Threading::BacktraceNode.new(frame)
              current.add_child(node)
              @flattened << node
            end

            node.runnable_count += 1
            current = node
            depth += 1
          end
        end