summaryrefslogtreecommitdiff
path: root/test/129-ThreadGetId/src/Main.java
diff options
context:
space:
mode:
Diffstat (limited to 'test/129-ThreadGetId/src/Main.java')
-rw-r--r--test/129-ThreadGetId/src/Main.java64
1 files changed, 6 insertions, 58 deletions
diff --git a/test/129-ThreadGetId/src/Main.java b/test/129-ThreadGetId/src/Main.java
index 3b4b076044..50e8c098de 100644
--- a/test/129-ThreadGetId/src/Main.java
+++ b/test/129-ThreadGetId/src/Main.java
@@ -16,71 +16,23 @@
import java.lang.reflect.Field;
import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
public class Main implements Runnable {
static final int NUMBER_OF_THREADS = 5;
- static volatile int ops_per_thread = 1000;
- static AtomicInteger operations_completed = new AtomicInteger(0);
- static int[] progress = new int[NUMBER_OF_THREADS];
- static AtomicInteger totalStackFrames = new AtomicInteger(0);
- static final boolean printStats = false; // True causes test to fail.
- int index;
-
- Main(int i) {
- index = i;
- }
+ static final int TOTAL_OPERATIONS = 900;
public static void main(String[] args) throws Exception {
final Thread[] threads = new Thread[NUMBER_OF_THREADS];
- Thread watchdog = new Thread() {
- public void run() {
- try {
- if (printStats) {
- System.out.println("ops_per_thread = " + ops_per_thread);
- }
- Thread.sleep(10_000);
- if (printStats) {
- System.out.println("Ops completed after 10 seconds: " +
- operations_completed.get());
- }
- if (operations_completed.get() < NUMBER_OF_THREADS * ops_per_thread / 2) {
- // We're in some sort of "go slow" mode, probably gcstress. Finish early.
- ops_per_thread /= 10;
- }
- if (printStats) {
- System.out.println("ops_per_thread = " + ops_per_thread);
- }
- Thread.sleep(200_000);
- System.out.print("Watchdog timed out: ");
- for (int i = 0; i < NUMBER_OF_THREADS; ++i) {
- System.out.print(progress[i] + ", ");
- }
- System.out.println("");
- System.err.println("Watchdog thread timed out");
- System.exit(1);
- } catch (InterruptedException e) {}
- }
- };
- watchdog.start();
- long start_millis = System.currentTimeMillis();
for (int t = 0; t < threads.length; t++) {
- threads[t] = new Thread(new Main(t));
+ threads[t] = new Thread(new Main());
threads[t].start();
}
for (Thread t : threads) {
t.join();
}
- if (printStats) {
- long elapsed_millis = System.currentTimeMillis() - start_millis;
- System.out.println("Captured " + totalStackFrames + " stack frames in " +
- elapsed_millis + "msecs");
- }
- System.out.println("All joined");
// Do this test after the other part to leave some time for the heap task daemon to start
// up.
test_getStackTraces();
- watchdog.interrupt();
System.out.println("Finishing");
}
@@ -94,9 +46,9 @@ public class Main implements Runnable {
Thread[] array = new Thread[activeCount];
systemThreadGroup.enumerate(array);
for (Thread thread : array) {
- if (thread.getName().equals("HeapTaskDaemon") &&
- thread.getState() != Thread.State.NEW) {
- return thread;
+ if (thread.getName().equals("HeapTaskDaemon") &&
+ thread.getState() != Thread.State.NEW) {
+ return thread;
}
}
// Yield to eventually get the daemon started.
@@ -131,16 +83,12 @@ public class Main implements Runnable {
if (thread.getId() <= 0) {
System.out.println("thread's ID is not positive: " + thread.getName());
}
- totalStackFrames.addAndGet(stMap.get(thread).length);
}
}
public void run() {
- for (int i = 1; i <= ops_per_thread; ++i) {
+ for (int i = 0; i < TOTAL_OPERATIONS; ++i) {
test_getId();
- operations_completed.addAndGet(1);
- progress[index] = i;
}
- System.out.println("Thread finished");
}
}