MCPcopy Create free account
hub / github.com/ReadyTalk/avian / ThreadGroup

Class ThreadGroup

classpath/java/lang/ThreadGroup.java:15–117  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13import avian.Cell;
14
15public class ThreadGroup implements Thread.UncaughtExceptionHandler {
16 private final ThreadGroup parent;
17 private final String name;
18 private Cell<ThreadGroup> subgroups;
19
20 public ThreadGroup(ThreadGroup parent, String name) {
21 this.parent = parent;
22 this.name = name;
23
24 synchronized (parent) {
25 parent.subgroups = new Cell(this, subgroups);
26 }
27 }
28
29 public ThreadGroup(String name) {
30 this(Thread.currentThread().getThreadGroup(), name);
31 }
32
33 public void uncaughtException(Thread t, Throwable e) {
34 if (parent != null) {
35 parent.uncaughtException(t, e);
36 } else {
37 Thread.UncaughtExceptionHandler deh
38 = Thread.getDefaultUncaughtExceptionHandler();
39 if (deh != null) {
40 deh.uncaughtException(t, e);
41 } else if (! (e instanceof ThreadDeath)) {
42 e.printStackTrace();
43 }
44 }
45 }
46
47 public ThreadGroup getParent() {
48 return parent;
49 }
50
51 public String getName() {
52 return name;
53 }
54
55 public int activeCount() {
56 int allCount = Thread.activeCount();
57 Thread[] all = new Thread[allCount];
58 allCount = Thread.enumerate(all);
59
60 int count = 0;
61 for (int i = 0; i < allCount; ++i) {
62 if (parentOf(all[i].getThreadGroup())) {
63 ++ count;
64 }
65 }
66
67 return count;
68 }
69
70 public int enumerate(Thread[] threads) {
71 return enumerate(threads, true);
72 }

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected