public final class org.openjdk.jmh.runner.link.BinaryLinkClient extends java.lang.Object
{
private static final int RESET_EACH;
private static final int BUFFER_SIZE;
private final java.lang.Object lock;
private final java.net.Socket clientSocket;
private final java.io.ObjectOutputStream oos;
private final java.io.ObjectInputStream ois;
private final org.openjdk.jmh.runner.link.BinaryLinkClient$ForwardingPrintStream streamErr;
private final org.openjdk.jmh.runner.link.BinaryLinkClient$ForwardingPrintStream streamOut;
private final org.openjdk.jmh.runner.format.OutputFormat outputFormat;
private volatile boolean failed;
private int resetToGo;
private final java.util.List delayedFrames;
private boolean inFrame;
public void <init>(java.lang.String, int) throws java.io.IOException
{
java.net.Socket v, v, v;
java.io.BufferedInputStream v;
org.openjdk.jmh.runner.link.BinaryLinkClient$1 v;
org.openjdk.jmh.runner.link.BinaryLinkClient$ForwardingPrintStream v, v;
java.io.ObjectInputStream v;
java.io.BufferedOutputStream v;
java.util.ArrayList v;
org.openjdk.jmh.runner.link.OutputFrame$Type v, v;
java.lang.Thread v;
int v, v, v;
java.io.ObjectOutputStream v, v;
java.lang.String v;
java.io.OutputStream v;
java.lang.Class[] v;
java.lang.Object v, v;
java.lang.ClassLoader v;
org.openjdk.jmh.runner.link.BinaryLinkClient v;
java.io.InputStream v;
v := @this: org.openjdk.jmh.runner.link.BinaryLinkClient;
v := @parameter: java.lang.String;
v := @parameter: int;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.lang.Object lock> = v;
v = new java.net.Socket;
specialinvoke v.<java.net.Socket: void <init>(java.lang.String,int)>(v, v);
v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.net.Socket clientSocket> = v;
v = new java.io.ObjectOutputStream;
v = new java.io.BufferedOutputStream;
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.net.Socket clientSocket>;
v = virtualinvoke v.<java.net.Socket: java.io.OutputStream getOutputStream()>();
v = <org.openjdk.jmh.runner.link.BinaryLinkClient: int BUFFER_SIZE>;
specialinvoke v.<java.io.BufferedOutputStream: void <init>(java.io.OutputStream,int)>(v, v);
specialinvoke v.<java.io.ObjectOutputStream: void <init>(java.io.OutputStream)>(v);
v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.io.ObjectOutputStream oos> = v;
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.io.ObjectOutputStream oos>;
virtualinvoke v.<java.io.ObjectOutputStream: void flush()>();
v = new java.io.ObjectInputStream;
v = new java.io.BufferedInputStream;
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.net.Socket clientSocket>;
v = virtualinvoke v.<java.net.Socket: java.io.InputStream getInputStream()>();
v = <org.openjdk.jmh.runner.link.BinaryLinkClient: int BUFFER_SIZE>;
specialinvoke v.<java.io.BufferedInputStream: void <init>(java.io.InputStream,int)>(v, v);
specialinvoke v.<java.io.ObjectInputStream: void <init>(java.io.InputStream)>(v);
v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.io.ObjectInputStream ois> = v;
v = new org.openjdk.jmh.runner.link.BinaryLinkClient$ForwardingPrintStream;
v = <org.openjdk.jmh.runner.link.OutputFrame$Type: org.openjdk.jmh.runner.link.OutputFrame$Type ERR>;
specialinvoke v.<org.openjdk.jmh.runner.link.BinaryLinkClient$ForwardingPrintStream: void <init>(org.openjdk.jmh.runner.link.BinaryLinkClient,org.openjdk.jmh.runner.link.OutputFrame$Type)>(v, v);
v.<org.openjdk.jmh.runner.link.BinaryLinkClient: org.openjdk.jmh.runner.link.BinaryLinkClient$ForwardingPrintStream streamErr> = v;
v = new org.openjdk.jmh.runner.link.BinaryLinkClient$ForwardingPrintStream;
v = <org.openjdk.jmh.runner.link.OutputFrame$Type: org.openjdk.jmh.runner.link.OutputFrame$Type OUT>;
specialinvoke v.<org.openjdk.jmh.runner.link.BinaryLinkClient$ForwardingPrintStream: void <init>(org.openjdk.jmh.runner.link.BinaryLinkClient,org.openjdk.jmh.runner.link.OutputFrame$Type)>(v, v);
v.<org.openjdk.jmh.runner.link.BinaryLinkClient: org.openjdk.jmh.runner.link.BinaryLinkClient$ForwardingPrintStream streamOut> = v;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = virtualinvoke v.<java.lang.Thread: java.lang.ClassLoader getContextClassLoader()>();
v = newarray (java.lang.Class)[1];
v[0] = class "Lorg/openjdk/jmh/runner/format/OutputFormat;";
v = new org.openjdk.jmh.runner.link.BinaryLinkClient$1;
specialinvoke v.<org.openjdk.jmh.runner.link.BinaryLinkClient$1: void <init>(org.openjdk.jmh.runner.link.BinaryLinkClient)>(v);
v = staticinvoke <java.lang.reflect.Proxy: java.lang.Object newProxyInstance(java.lang.ClassLoader,java.lang.Class[],java.lang.reflect.InvocationHandler)>(v, v, v);
v.<org.openjdk.jmh.runner.link.BinaryLinkClient: org.openjdk.jmh.runner.format.OutputFormat outputFormat> = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.util.List delayedFrames> = v;
return;
}
private void pushFrame(java.io.Serializable) throws java.io.IOException
{
java.lang.Throwable v, v;
java.util.ArrayList v;
int v, v, v;
java.io.ObjectOutputStream v, v, v, v, v;
boolean v, v, v, v;
java.util.Iterator v;
java.io.IOException v, v;
java.io.Serializable v;
java.util.List v, v, v, v;
java.lang.Object v, v;
org.openjdk.jmh.runner.link.BinaryLinkClient v;
v := @this: org.openjdk.jmh.runner.link.BinaryLinkClient;
v := @parameter: java.io.Serializable;
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: boolean failed>;
if v == 0 goto label;
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>("Link had failed already");
throw v;
label:
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.lang.Object lock>;
entermonitor v;
label:
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: boolean inFrame>;
if v == 0 goto label;
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.util.List delayedFrames>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
exitmonitor v;
label:
return;
label:
v.<org.openjdk.jmh.runner.link.BinaryLinkClient: boolean inFrame> = 1;
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: int resetToGo>;
v = v - 1;
v.<org.openjdk.jmh.runner.link.BinaryLinkClient: int resetToGo> = v;
if v >= 0 goto label;
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.io.ObjectOutputStream oos>;
virtualinvoke v.<java.io.ObjectOutputStream: void reset()>();
v = <org.openjdk.jmh.runner.link.BinaryLinkClient: int RESET_EACH>;
v.<org.openjdk.jmh.runner.link.BinaryLinkClient: int resetToGo> = v;
label:
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.io.ObjectOutputStream oos>;
virtualinvoke v.<java.io.ObjectOutputStream: void writeObject(java.lang.Object)>(v);
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.io.ObjectOutputStream oos>;
virtualinvoke v.<java.io.ObjectOutputStream: void flush()>();
label:
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.util.List delayedFrames>;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = new java.util.ArrayList;
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.util.List delayedFrames>;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.util.List delayedFrames>;
interfaceinvoke v.<java.util.List: void clear()>();
v = interfaceinvoke v.<java.util.List: 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 = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.io.ObjectOutputStream oos>;
virtualinvoke v.<java.io.ObjectOutputStream: void writeObject(java.lang.Object)>(v);
goto label;
label:
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.io.ObjectOutputStream oos>;
virtualinvoke v.<java.io.ObjectOutputStream: void flush()>();
goto label;
label:
v.<org.openjdk.jmh.runner.link.BinaryLinkClient: boolean inFrame> = 0;
goto label;
label:
v := @caughtexception;
v.<org.openjdk.jmh.runner.link.BinaryLinkClient: boolean failed> = 1;
throw v;
label:
v := @caughtexception;
v.<org.openjdk.jmh.runner.link.BinaryLinkClient: boolean inFrame> = 0;
throw v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.io.IOException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private java.lang.Object readFrame() throws java.io.IOException, java.lang.ClassNotFoundException
{
java.io.ObjectInputStream v;
java.lang.Object v;
org.openjdk.jmh.runner.link.BinaryLinkClient v;
java.lang.Exception v;
v := @this: org.openjdk.jmh.runner.link.BinaryLinkClient;
label:
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.io.ObjectInputStream ois>;
v = virtualinvoke v.<java.io.ObjectInputStream: java.lang.Object readObject()>();
label:
return v;
label:
v := @caughtexception;
v.<org.openjdk.jmh.runner.link.BinaryLinkClient: boolean failed> = 1;
throw v;
catch java.lang.ClassNotFoundException from label to label with label;
catch java.io.IOException from label to label with label;
}
public void close() throws java.io.IOException
{
java.lang.Throwable v;
java.net.Socket v;
org.openjdk.jmh.runner.link.BinaryLinkClient$ForwardingPrintStream v, v;
java.io.ObjectInputStream v;
org.openjdk.jmh.runner.link.FinishingFrame v;
java.io.ObjectOutputStream v, v;
java.lang.Object v;
org.openjdk.jmh.runner.link.BinaryLinkClient v;
v := @this: org.openjdk.jmh.runner.link.BinaryLinkClient;
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: org.openjdk.jmh.runner.link.BinaryLinkClient$ForwardingPrintStream streamErr>;
staticinvoke <org.openjdk.jmh.util.FileUtils: void safelyClose(java.io.Flushable)>(v);
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: org.openjdk.jmh.runner.link.BinaryLinkClient$ForwardingPrintStream streamOut>;
staticinvoke <org.openjdk.jmh.util.FileUtils: void safelyClose(java.io.Flushable)>(v);
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.lang.Object lock>;
entermonitor v;
label:
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.io.ObjectOutputStream oos>;
v = new org.openjdk.jmh.runner.link.FinishingFrame;
specialinvoke v.<org.openjdk.jmh.runner.link.FinishingFrame: void <init>()>();
virtualinvoke v.<java.io.ObjectOutputStream: void writeObject(java.lang.Object)>(v);
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.io.ObjectInputStream ois>;
staticinvoke <org.openjdk.jmh.util.FileUtils: void safelyClose(java.io.Closeable)>(v);
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.io.ObjectOutputStream oos>;
staticinvoke <org.openjdk.jmh.util.FileUtils: void safelyClose(java.io.Flushable)>(v);
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.net.Socket clientSocket>;
virtualinvoke v.<java.net.Socket: void close()>();
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public org.openjdk.jmh.runner.options.Options handshake() throws java.io.IOException, java.lang.ClassNotFoundException
{
java.lang.Throwable v;
java.lang.IllegalStateException v;
org.openjdk.jmh.runner.link.HandshakeInitFrame v;
long v;
java.lang.Object v, v;
java.lang.String v;
org.openjdk.jmh.runner.link.BinaryLinkClient v;
org.openjdk.jmh.runner.options.Options v;
boolean v;
v := @this: org.openjdk.jmh.runner.link.BinaryLinkClient;
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.lang.Object lock>;
entermonitor v;
label:
v = new org.openjdk.jmh.runner.link.HandshakeInitFrame;
v = staticinvoke <org.openjdk.jmh.util.Utils: long getPid()>();
specialinvoke v.<org.openjdk.jmh.runner.link.HandshakeInitFrame: void <init>(long)>(v);
specialinvoke v.<org.openjdk.jmh.runner.link.BinaryLinkClient: void pushFrame(java.io.Serializable)>(v);
v = specialinvoke v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.lang.Object readFrame()>();
v = v instanceof org.openjdk.jmh.runner.link.HandshakeResponseFrame;
if v == 0 goto label;
v = virtualinvoke v.<org.openjdk.jmh.runner.link.HandshakeResponseFrame: org.openjdk.jmh.runner.options.Options getOpts()>();
exitmonitor v;
label:
return v;
label:
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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[])>("Got the erroneous reply: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public org.openjdk.jmh.runner.ActionPlan requestPlan() throws java.io.IOException, java.lang.ClassNotFoundException
{
java.lang.Throwable v;
java.lang.IllegalStateException v;
org.openjdk.jmh.runner.link.InfraFrame$Type v;
org.openjdk.jmh.runner.ActionPlan v;
org.openjdk.jmh.runner.link.InfraFrame v;
java.lang.Object v, v;
java.lang.String v;
org.openjdk.jmh.runner.link.BinaryLinkClient v;
boolean v;
v := @this: org.openjdk.jmh.runner.link.BinaryLinkClient;
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.lang.Object lock>;
entermonitor v;
label:
v = new org.openjdk.jmh.runner.link.InfraFrame;
v = <org.openjdk.jmh.runner.link.InfraFrame$Type: org.openjdk.jmh.runner.link.InfraFrame$Type ACTION_PLAN_REQUEST>;
specialinvoke v.<org.openjdk.jmh.runner.link.InfraFrame: void <init>(org.openjdk.jmh.runner.link.InfraFrame$Type)>(v);
specialinvoke v.<org.openjdk.jmh.runner.link.BinaryLinkClient: void pushFrame(java.io.Serializable)>(v);
v = specialinvoke v.<org.openjdk.jmh.runner.link.BinaryLinkClient: java.lang.Object readFrame()>();
v = v instanceof org.openjdk.jmh.runner.link.ActionPlanFrame;
if v == 0 goto label;
v = virtualinvoke v.<org.openjdk.jmh.runner.link.ActionPlanFrame: org.openjdk.jmh.runner.ActionPlan getActionPlan()>();
exitmonitor v;
label:
return v;
label:
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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[])>("Got the erroneous reply: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public void pushResults(org.openjdk.jmh.results.IterationResult) throws java.io.IOException
{
org.openjdk.jmh.results.IterationResult v;
org.openjdk.jmh.runner.link.BinaryLinkClient v;
org.openjdk.jmh.runner.link.ResultsFrame v;
v := @this: org.openjdk.jmh.runner.link.BinaryLinkClient;
v := @parameter: org.openjdk.jmh.results.IterationResult;
v = new org.openjdk.jmh.runner.link.ResultsFrame;
specialinvoke v.<org.openjdk.jmh.runner.link.ResultsFrame: void <init>(org.openjdk.jmh.results.IterationResult)>(v);
specialinvoke v.<org.openjdk.jmh.runner.link.BinaryLinkClient: void pushFrame(java.io.Serializable)>(v);
return;
}
public void pushException(org.openjdk.jmh.runner.BenchmarkException) throws java.io.IOException
{
org.openjdk.jmh.runner.link.ExceptionFrame v;
org.openjdk.jmh.runner.link.BinaryLinkClient v;
org.openjdk.jmh.runner.BenchmarkException v;
v := @this: org.openjdk.jmh.runner.link.BinaryLinkClient;
v := @parameter: org.openjdk.jmh.runner.BenchmarkException;
v = new org.openjdk.jmh.runner.link.ExceptionFrame;
specialinvoke v.<org.openjdk.jmh.runner.link.ExceptionFrame: void <init>(org.openjdk.jmh.runner.BenchmarkException)>(v);
specialinvoke v.<org.openjdk.jmh.runner.link.BinaryLinkClient: void pushFrame(java.io.Serializable)>(v);
return;
}
public void pushResultMetadata(org.openjdk.jmh.results.BenchmarkResultMetaData) throws java.io.IOException
{
org.openjdk.jmh.results.BenchmarkResultMetaData v;
org.openjdk.jmh.runner.link.BinaryLinkClient v;
org.openjdk.jmh.runner.link.ResultMetadataFrame v;
v := @this: org.openjdk.jmh.runner.link.BinaryLinkClient;
v := @parameter: org.openjdk.jmh.results.BenchmarkResultMetaData;
v = new org.openjdk.jmh.runner.link.ResultMetadataFrame;
specialinvoke v.<org.openjdk.jmh.runner.link.ResultMetadataFrame: void <init>(org.openjdk.jmh.results.BenchmarkResultMetaData)>(v);
specialinvoke v.<org.openjdk.jmh.runner.link.BinaryLinkClient: void pushFrame(java.io.Serializable)>(v);
return;
}
public java.io.PrintStream getOutStream()
{
org.openjdk.jmh.runner.link.BinaryLinkClient v;
org.openjdk.jmh.runner.link.BinaryLinkClient$ForwardingPrintStream v;
v := @this: org.openjdk.jmh.runner.link.BinaryLinkClient;
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: org.openjdk.jmh.runner.link.BinaryLinkClient$ForwardingPrintStream streamOut>;
return v;
}
public java.io.PrintStream getErrStream()
{
org.openjdk.jmh.runner.link.BinaryLinkClient v;
org.openjdk.jmh.runner.link.BinaryLinkClient$ForwardingPrintStream v;
v := @this: org.openjdk.jmh.runner.link.BinaryLinkClient;
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: org.openjdk.jmh.runner.link.BinaryLinkClient$ForwardingPrintStream streamErr>;
return v;
}
public org.openjdk.jmh.runner.format.OutputFormat getOutputFormat()
{
org.openjdk.jmh.runner.link.BinaryLinkClient v;
org.openjdk.jmh.runner.format.OutputFormat v;
v := @this: org.openjdk.jmh.runner.link.BinaryLinkClient;
v = v.<org.openjdk.jmh.runner.link.BinaryLinkClient: org.openjdk.jmh.runner.format.OutputFormat outputFormat>;
return v;
}
static void <clinit>()
{
int v, v;
java.lang.Integer v, v;
v = staticinvoke <java.lang.Integer: java.lang.Integer getInteger(java.lang.String,int)>("jmh.link.resetEach", 100);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
<org.openjdk.jmh.runner.link.BinaryLinkClient: int RESET_EACH> = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer getInteger(java.lang.String,int)>("jmh.link.bufferSize", 65536);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
<org.openjdk.jmh.runner.link.BinaryLinkClient: int BUFFER_SIZE> = v;
return;
}
}