class org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread extends java.lang.Thread
{
private static final int TIMEOUT;
private static final int TIMEOUT_STEP;
private static final java.lang.String LINE_SEPARATOR;
public void <init>()
{
org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread v;
v := @this: org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread;
specialinvoke v.<java.lang.Thread: void <init>()>();
virtualinvoke v.<org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread: void setName(java.lang.String)>("JMH-Shutdown-Timeout");
virtualinvoke v.<org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread: void setDaemon(boolean)>(1);
return;
}
public void run()
{
long v, v, v, v, v;
java.util.concurrent.atomic.AtomicReference v, v;
byte v;
int v, v, v;
java.lang.String v, v;
org.openjdk.jmh.runner.format.OutputFormat v, v;
java.io.PrintStream v, v;
java.lang.Runtime v;
org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread v;
java.util.concurrent.TimeUnit v, v;
java.lang.InterruptedException v;
java.lang.Object v, v;
v := @this: org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread;
v = staticinvoke <java.lang.System: long nanoTime()>();
label:
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = <org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread: int TIMEOUT_STEP>;
virtualinvoke v.<java.util.concurrent.TimeUnit: void sleep(long)>(v);
label:
goto label;
label:
v := @caughtexception;
return;
label:
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = <org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread: int TIMEOUT>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(v);
v = staticinvoke <java.lang.System: long nanoTime()>();
v = v - v;
v = v - v;
v = specialinvoke v.<org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread: java.lang.String getMessage(long)>(v);
v = <org.openjdk.jmh.runner.ForkedMain: java.util.concurrent.atomic.AtomicReference linkRef>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
if v == null goto label;
v = virtualinvoke v.<org.openjdk.jmh.runner.link.BinaryLinkClient: org.openjdk.jmh.runner.format.OutputFormat getOutputFormat()>();
interfaceinvoke v.<org.openjdk.jmh.runner.format.OutputFormat: void println(java.lang.String)>(v);
goto label;
label:
v = <org.openjdk.jmh.runner.ForkedMain: java.io.PrintStream nakedErr>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
label:
v = v cmp 0L;
if v > 0 goto label;
v = <org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread: int TIMEOUT>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("<shutdown timeout of \u seconds expired, forcing forked VM to exit>");
v = <org.openjdk.jmh.runner.ForkedMain: java.util.concurrent.atomic.AtomicReference linkRef>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
if v == null goto label;
v = virtualinvoke v.<org.openjdk.jmh.runner.link.BinaryLinkClient: org.openjdk.jmh.runner.format.OutputFormat getOutputFormat()>();
interfaceinvoke v.<org.openjdk.jmh.runner.format.OutputFormat: void println(java.lang.String)>(v);
goto label;
label:
v = <org.openjdk.jmh.runner.ForkedMain: java.io.PrintStream nakedErr>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
label:
staticinvoke <org.openjdk.jmh.runner.ForkedMain: void hangup()>();
v = staticinvoke <java.lang.Runtime: java.lang.Runtime getRuntime()>();
virtualinvoke v.<java.lang.Runtime: void halt(int)>(0);
return;
catch java.lang.InterruptedException from label to label with label;
}
private java.lang.String getMessage(long)
{
long v, v;
java.util.Map v;
int v, v;
java.lang.StackTraceElement v;
java.lang.String v, v, v, v, v, v, v, v;
boolean v, v, v;
java.util.Iterator v;
org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread v;
java.util.Set v;
java.util.concurrent.TimeUnit v;
java.lang.Object v, v, v;
java.lang.StringBuilder v, v, v;
v := @this: org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread;
v := @parameter: long;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("<JMH had finished, but forked VM did not exit, are there stray running threads? Waiting ");
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit NANOSECONDS>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toSeconds(long)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(long)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" seconds more...>");
v = <org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread: java.lang.String LINE_SEPARATOR>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = <org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread: java.lang.String LINE_SEPARATOR>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("Non-finished threads:");
v = <org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread: java.lang.String LINE_SEPARATOR>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = <org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread: java.lang.String LINE_SEPARATOR>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = staticinvoke <java.lang.Thread: java.util.Map getAllStackTraces()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<java.lang.Thread: boolean isDaemon()>();
if v != 0 goto label;
v = virtualinvoke v.<java.lang.Thread: boolean isAlive()>();
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>(v);
v = <org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread: java.lang.String LINE_SEPARATOR>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  at ");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>(v);
v = <org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread: java.lang.String LINE_SEPARATOR>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = <org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread: java.lang.String LINE_SEPARATOR>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
static void <clinit>()
{
int v, v;
java.lang.String v;
java.lang.Integer v, v;
v = staticinvoke <java.lang.Integer: java.lang.Integer getInteger(java.lang.String,int)>("jmh.shutdownTimeout", 30);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
<org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread: int TIMEOUT> = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer getInteger(java.lang.String,int)>("jmh.shutdownTimeout.step", 5);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
<org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread: int TIMEOUT_STEP> = v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("line.separator");
<org.openjdk.jmh.runner.ForkedMain$ShutdownTimeoutThread: java.lang.String LINE_SEPARATOR> = v;
return;
}
}