in server/src/main/scala/com/twitter/server/view/ThreadsView.scala [102:140]
private def row(t: ThreadInfo): String = {
def stackTrace(stack: StackTrace): String =
if (stack.isEmpty) {
"[no stacktrace]"
} else {
stack.map(_.toString).map(escapeHtml).mkString("<br>")
}
val rowClassStyle = if (t.isIdle) "" else "success"
val rowClassIdle = if (t.isIdle) "idle_thread" else ""
val rowClassStackIdle = if (t.isIdle) IdleThreadStackClass else ""
val thread = t.thread
val daemonText =
if (thread.isDaemon) "Yes" else "<strong><span class=\"text-danger\">No</span></strong>"
val threadState =
s"${if (t.isIdle) "Idle" else "Active"} <small>(${escapeHtml(thread.getState.toString)})</small>"
val domId = s"threadId-${thread.getId}"
val stackDomId = s"threadId-stack-${thread.getId}"
s"""
<tr class="$rowClassStyle $rowClassIdle">
<td>
<a name="$domId" href="#" onClick="toggleStack('$stackDomId'); return false;">
<span class="glyphicon glyphicon-expand"></span> <span class="text-muted"><small>Stack</small></span>
</a>
</td>
<td>${thread.getId.toString}</td>
<td>${thread.getName}</td>
<td>${threadState}</td>
<td>${daemonText}</td>
<td>${thread.getPriority.toString}</td>
</tr>
<tr id="$stackDomId" class="$rowClassStyle $rowClassStackIdle $StackTraceRowClass">
<td colspan="6">
<pre>${stackTrace(t.stack)}</pre>
</td>
</tr>"""
}