diff options
Diffstat (limited to 'test/2044-get-stack-traces/src/Main.java')
-rw-r--r-- | test/2044-get-stack-traces/src/Main.java | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/test/2044-get-stack-traces/src/Main.java b/test/2044-get-stack-traces/src/Main.java deleted file mode 100644 index d17e7c18f4..0000000000 --- a/test/2044-get-stack-traces/src/Main.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.lang.ref.Reference; -import java.lang.ref.WeakReference; -import java.lang.ref.SoftReference; -import java.math.BigInteger; -import java.util.ArrayList; - -/** - * We construct a main thread and worker threads, each retrieving stack traces - * from the other. Since there are multiple workers, we may get a large number - * of simultaneous stack trace attempts. - */ -public class Main { - static final int NUM_THREADS = 5; - static Thread mainThread; - static volatile boolean pleaseStop = false; - - private static void getTrace(Thread t) { - StackTraceElement trace[] = t.getStackTrace(); - if (trace.length < 1 || trace.length > 20) { - System.out.println("Stack trace for " + t.getName() + " has size " + trace.length); - for (StackTraceElement e : trace) { - System.out.println(e.toString()); - } - } - } - - /** - * Repeatedly get and minimally check stack trace of main thread. - */ - static Runnable traceGetter = new Runnable() { - public void run() { - System.out.println("Starting helper"); - while (!pleaseStop) { - getTrace(mainThread); - } - } - }; - - public static void main(String[] args) throws Exception { - System.out.println("Starting"); - Thread[] t = new Thread[NUM_THREADS]; - mainThread = Thread.currentThread(); - for (int i = 0; i < NUM_THREADS; ++i) { - t[i] = new Thread(traceGetter); - t[i].start(); - } - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - System.out.println("Unexpectedly interrupted"); - } - for (int i = 0; i < NUM_THREADS; ++i) { - getTrace(t[i]); - } - System.out.println("Finished worker stack traces"); - long now = System.currentTimeMillis(); - while (System.currentTimeMillis() - now < 2000) { - try { - Thread.sleep(1); - } catch (InterruptedException e) { - System.out.println("Unexpectedly interrupted"); - } - } - pleaseStop = true; - System.out.println("Finished"); - } -} |