private def htmlResponse()

in server/src/main/scala/com/twitter/server/handler/ThreadsHandler.scala [59:86]


  private def htmlResponse(req: Request): Future[Response] = {
    // first, gather the data
    val raw: Seq[ThreadInfo] =
      Thread.getAllStackTraces.asScala.toMap.map {
        case (thread, stack) =>
          ThreadInfo(thread, stack.toSeq, isIdle = false)
      }.toSeq

    val withIdle = markedIdle(raw)

    val sorted = withIdle.sortWith {
      case (t1, t2) =>
        (t1.isIdle, t2.isIdle) match {
          case (true, false) => false
          case (false, true) => true
          case _ => t1.thread.getId < t2.thread.getId
        }
    }

    val view = new ThreadsView(sorted, deadlockedIds)
    val rendered = view()

    newResponse(
      // note: contentType must be explicit here because of `IndexView.isFragment`
      contentType = "text/html;charset=UTF-8",
      content = Buf.Utf8(rendered)
    )
  }