On Mon, 23 May 2022 07:53:09 GMT, Alan Bateman <al...@openjdk.org> wrote:
>> test/lib/jdk/test/lib/threaddump/ThreadDump.java line 179: >> >>> 177: return this; >>> 178: if (name().startsWith(name + "/")) >>> 179: return this; >> >> It's not clear to me why this is here. What does it mean if the name of the >> container starts with `<name>/`? > > With the exception of the root container, the names have the form > "name1/name2" where name1 is the "external name" and name2 identifies the > internal thread grouping. The external name is the object identity for > thread pools and thread-per-executors created by user code. In time we may > expose ways to provide a name. Ok. That wasn't in the original example dump, but appears to be there now. >> test/lib/jdk/test/lib/threaddump/ThreadDump.java line 299: >> >>> 297: >>> 298: // add to map if not already encountered >>> 299: var container = map.computeIfAbsent(name, k -> new >>> ThreadContainer(name)); >> >> Why might the container already be in `map`? > > They aren't topologically sorted so it's possible to encounter a thread > container before its parent. ok ------------- PR: https://git.openjdk.java.net/jdk/pull/8784