• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package shark.internal
2 
3 import shark.GcRoot.ThreadObject
4 import shark.HeapGraph
5 
6 internal object ThreadObjects {
7 
<lambda>null8   private fun getThreadObjectsByIdMap(graph: HeapGraph) = graph.context.getOrPut(ThreadObjects::class.java.name) {
9     graph.gcRoots.asSequence().filterIsInstance<ThreadObject>().associateBy { it.id }
10   }
11 
getThreadObjectsnull12   fun getThreadObjects(graph: HeapGraph) = getThreadObjectsByIdMap(graph).values
13 
14   fun getByThreadObjectId(graph: HeapGraph, objectId: Long): ThreadObject? {
15     val threadObjectsById = getThreadObjectsByIdMap(graph)
16     return threadObjectsById[objectId]
17   }
18 }
19