40
41 // Thread names permitted to appear during test:
42 public static final String [] permittedThreadNames = { "ForkJoinPool", "JVMCI" };
43
44 public static boolean isPermittedNewThread(String name) {
45 for (String s : permittedThreadNames) {
46 if (name.contains(s)) {
47 return true;
48 }
49 }
50 return false;
51 }
52
53 public static void main(String args[]) {
54
55 // Bug id : JDK-8151797
56 // Use a lambda expression so that call-site cleaner thread is started
57 Runnable printLambda = () -> {System.out.println("Starting Test");};
58 printLambda.run();
59
60 // get top-level thread group
61 ThreadGroup top = Thread.currentThread().getThreadGroup();
62 ThreadGroup parent;
63 do {
64 parent = top.getParent();
65 if (parent != null) top = parent;
66 } while (parent != null);
67
68 // get the thread count
69 int tgActiveCount = top.activeCount();
70
71 // Now enumerate to see if we find any extras yet.
72 // Ensure array is big enough for a few extras.
73 Thread[] tgThreads = new Thread[tgActiveCount * 2];
74 int tgNewCount = top.enumerate(tgThreads);
75 Map<Thread, StackTraceElement[]> stackTraces = Thread.getAllStackTraces();
76
77 if (tgNewCount != tgActiveCount) {
78 System.out.println("Found different Thread Group thread count after enumeration: tgActiveCount="
79 + tgActiveCount + " enumerated=" + tgNewCount);
|
40
41 // Thread names permitted to appear during test:
42 public static final String [] permittedThreadNames = { "ForkJoinPool", "JVMCI" };
43
44 public static boolean isPermittedNewThread(String name) {
45 for (String s : permittedThreadNames) {
46 if (name.contains(s)) {
47 return true;
48 }
49 }
50 return false;
51 }
52
53 public static void main(String args[]) {
54
55 // Bug id : JDK-8151797
56 // Use a lambda expression so that call-site cleaner thread is started
57 Runnable printLambda = () -> {System.out.println("Starting Test");};
58 printLambda.run();
59
60 // start a virutal thread to cause supporting threads to start
61 Thread.startVirtualThread(() -> { });
62
63 // get top-level thread group
64 ThreadGroup top = Thread.currentThread().getThreadGroup();
65 ThreadGroup parent;
66 do {
67 parent = top.getParent();
68 if (parent != null) top = parent;
69 } while (parent != null);
70
71 // get the thread count
72 int tgActiveCount = top.activeCount();
73
74 // Now enumerate to see if we find any extras yet.
75 // Ensure array is big enough for a few extras.
76 Thread[] tgThreads = new Thread[tgActiveCount * 2];
77 int tgNewCount = top.enumerate(tgThreads);
78 Map<Thread, StackTraceElement[]> stackTraces = Thread.getAllStackTraces();
79
80 if (tgNewCount != tgActiveCount) {
81 System.out.println("Found different Thread Group thread count after enumeration: tgActiveCount="
82 + tgActiveCount + " enumerated=" + tgNewCount);
|