public abstract class org.glassfish.grizzly.nio.NIOTransport extends org.glassfish.grizzly.AbstractTransport implements org.glassfish.grizzly.SocketBinder, org.glassfish.grizzly.SocketConnectorHandler, org.glassfish.grizzly.nio.tmpselectors.TemporarySelectorsEnabledTransport, org.glassfish.grizzly.asyncqueue.AsyncQueueEnabledTransport
{
public static final int DEFAULT_SERVER_SOCKET_SO_TIMEOUT;
public static final boolean DEFAULT_REUSE_ADDRESS;
public static final int DEFAULT_CLIENT_SOCKET_SO_TIMEOUT;
public static final int DEFAULT_CONNECTION_TIMEOUT;
public static final int DEFAULT_SELECTOR_RUNNER_COUNT;
public static final boolean DEFAULT_OPTIMIZED_FOR_MULTIPLEXING;
private static final java.util.logging.Logger LOGGER;
protected org.glassfish.grizzly.nio.SelectorHandler selectorHandler;
protected org.glassfish.grizzly.nio.SelectionKeyHandler selectionKeyHandler;
int serverSocketSoTimeout;
boolean reuseAddress;
int clientSocketSoTimeout;
int connectionTimeout;
protected org.glassfish.grizzly.nio.ChannelConfigurator channelConfigurator;
private int selectorRunnersCount;
private boolean optimizedForMultiplexing;
protected org.glassfish.grizzly.nio.SelectorRunner[] selectorRunners;
protected org.glassfish.grizzly.nio.NIOChannelDistributor nioChannelDistributor;
protected java.nio.channels.spi.SelectorProvider selectorProvider;
protected final org.glassfish.grizzly.nio.tmpselectors.TemporarySelectorIO temporarySelectorIO;
protected java.util.Set shutdownListeners;
protected org.glassfish.grizzly.impl.FutureImpl shutdownFuture;
protected java.util.concurrent.ExecutorService shutdownService;
public void <init>(java.lang.String)
{
java.nio.channels.spi.SelectorProvider v;
org.glassfish.grizzly.nio.NIOTransport v;
org.glassfish.grizzly.nio.tmpselectors.TemporarySelectorIO v;
int v;
java.lang.String v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v := @parameter: java.lang.String;
specialinvoke v.<org.glassfish.grizzly.AbstractTransport: void <init>(java.lang.String)>(v);
v.<org.glassfish.grizzly.nio.NIOTransport: int serverSocketSoTimeout> = 0;
v.<org.glassfish.grizzly.nio.NIOTransport: boolean reuseAddress> = 1;
v.<org.glassfish.grizzly.nio.NIOTransport: int clientSocketSoTimeout> = 0;
v.<org.glassfish.grizzly.nio.NIOTransport: int connectionTimeout> = 30000;
v = (int) -1;
v.<org.glassfish.grizzly.nio.NIOTransport: int selectorRunnersCount> = v;
v.<org.glassfish.grizzly.nio.NIOTransport: boolean optimizedForMultiplexing> = 0;
v = staticinvoke <java.nio.channels.spi.SelectorProvider: java.nio.channels.spi.SelectorProvider provider()>();
v.<org.glassfish.grizzly.nio.NIOTransport: java.nio.channels.spi.SelectorProvider selectorProvider> = v;
v = virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.tmpselectors.TemporarySelectorIO createTemporarySelectorIO()>();
v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.tmpselectors.TemporarySelectorIO temporarySelectorIO> = v;
return;
}
public abstract void unbindAll();
public boolean addShutdownListener(org.glassfish.grizzly.GracefulShutdownListener)
{
java.lang.Throwable v;
org.glassfish.grizzly.Transport$State v, v;
java.util.Set v, v;
java.util.concurrent.locks.ReentrantReadWriteLock v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v;
org.glassfish.grizzly.utils.StateHolder v, v;
java.util.HashSet v;
org.glassfish.grizzly.GracefulShutdownListener v;
org.glassfish.grizzly.nio.NIOTransport v;
java.lang.Object v;
boolean v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v := @parameter: org.glassfish.grizzly.GracefulShutdownListener;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: java.util.concurrent.locks.ReentrantReadWriteLock getStateLocker()>();
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: java.lang.Object getState()>();
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State STOPPING>;
if v != v goto label;
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State STOPPED>;
if v == v goto label;
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.util.Set shutdownListeners>;
if v != null goto label;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v.<org.glassfish.grizzly.nio.NIOTransport: java.util.Set shutdownListeners> = v;
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.util.Set shutdownListeners>;
v = interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
return v;
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
return 0;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public org.glassfish.grizzly.nio.tmpselectors.TemporarySelectorIO getTemporarySelectorIO()
{
org.glassfish.grizzly.nio.NIOTransport v;
org.glassfish.grizzly.nio.tmpselectors.TemporarySelectorIO v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.tmpselectors.TemporarySelectorIO temporarySelectorIO>;
return v;
}
public org.glassfish.grizzly.nio.SelectionKeyHandler getSelectionKeyHandler()
{
org.glassfish.grizzly.nio.NIOTransport v;
org.glassfish.grizzly.nio.SelectionKeyHandler v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.SelectionKeyHandler selectionKeyHandler>;
return v;
}
public void setSelectionKeyHandler(org.glassfish.grizzly.nio.SelectionKeyHandler)
{
org.glassfish.grizzly.nio.NIOTransport v;
org.glassfish.grizzly.nio.SelectionKeyHandler v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v := @parameter: org.glassfish.grizzly.nio.SelectionKeyHandler;
v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.SelectionKeyHandler selectionKeyHandler> = v;
staticinvoke <org.glassfish.grizzly.nio.NIOTransport: void notifyProbesConfigChanged(org.glassfish.grizzly.AbstractTransport)>(v);
return;
}
public org.glassfish.grizzly.nio.SelectorHandler getSelectorHandler()
{
org.glassfish.grizzly.nio.NIOTransport v;
org.glassfish.grizzly.nio.SelectorHandler v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.SelectorHandler selectorHandler>;
return v;
}
public void setSelectorHandler(org.glassfish.grizzly.nio.SelectorHandler)
{
org.glassfish.grizzly.nio.NIOTransport v;
org.glassfish.grizzly.nio.SelectorHandler v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v := @parameter: org.glassfish.grizzly.nio.SelectorHandler;
v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.SelectorHandler selectorHandler> = v;
staticinvoke <org.glassfish.grizzly.nio.NIOTransport: void notifyProbesConfigChanged(org.glassfish.grizzly.AbstractTransport)>(v);
return;
}
public org.glassfish.grizzly.nio.ChannelConfigurator getChannelConfigurator()
{
org.glassfish.grizzly.nio.NIOTransport v;
org.glassfish.grizzly.nio.ChannelConfigurator v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.ChannelConfigurator channelConfigurator>;
return v;
}
public void setChannelConfigurator(org.glassfish.grizzly.nio.ChannelConfigurator)
{
org.glassfish.grizzly.nio.NIOTransport v;
org.glassfish.grizzly.nio.ChannelConfigurator v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v := @parameter: org.glassfish.grizzly.nio.ChannelConfigurator;
v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.ChannelConfigurator channelConfigurator> = v;
staticinvoke <org.glassfish.grizzly.nio.NIOTransport: void notifyProbesConfigChanged(org.glassfish.grizzly.AbstractTransport)>(v);
return;
}
public int getSelectorRunnersCount()
{
org.glassfish.grizzly.nio.NIOTransport v;
int v, v, v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: int selectorRunnersCount>;
if v > 0 goto label;
v = virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: int getDefaultSelectorRunnersCount()>();
v.<org.glassfish.grizzly.nio.NIOTransport: int selectorRunnersCount> = v;
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: int selectorRunnersCount>;
return v;
}
public void setSelectorRunnersCount(int)
{
org.glassfish.grizzly.nio.NIOTransport v;
int v, v;
org.glassfish.grizzly.threadpool.ThreadPoolConfig v, v, v, v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v := @parameter: int;
if v <= 0 goto label;
v.<org.glassfish.grizzly.nio.NIOTransport: int selectorRunnersCount> = v;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.threadpool.ThreadPoolConfig kernelPoolConfig>;
if v == null goto label;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.threadpool.ThreadPoolConfig kernelPoolConfig>;
v = virtualinvoke v.<org.glassfish.grizzly.threadpool.ThreadPoolConfig: int getMaxPoolSize()>();
if v >= v goto label;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.threadpool.ThreadPoolConfig kernelPoolConfig>;
v = virtualinvoke v.<org.glassfish.grizzly.threadpool.ThreadPoolConfig: org.glassfish.grizzly.threadpool.ThreadPoolConfig setCorePoolSize(int)>(v);
virtualinvoke v.<org.glassfish.grizzly.threadpool.ThreadPoolConfig: org.glassfish.grizzly.threadpool.ThreadPoolConfig setMaxPoolSize(int)>(v);
label:
staticinvoke <org.glassfish.grizzly.nio.NIOTransport: void notifyProbesConfigChanged(org.glassfish.grizzly.AbstractTransport)>(v);
label:
return;
}
public java.nio.channels.spi.SelectorProvider getSelectorProvider()
{
java.nio.channels.spi.SelectorProvider v;
org.glassfish.grizzly.nio.NIOTransport v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.nio.channels.spi.SelectorProvider selectorProvider>;
return v;
}
public void setSelectorProvider(java.nio.channels.spi.SelectorProvider)
{
java.nio.channels.spi.SelectorProvider v, v;
org.glassfish.grizzly.nio.NIOTransport v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v := @parameter: java.nio.channels.spi.SelectorProvider;
if v == null goto label;
v = v;
goto label;
label:
v = staticinvoke <java.nio.channels.spi.SelectorProvider: java.nio.channels.spi.SelectorProvider provider()>();
label:
v.<org.glassfish.grizzly.nio.NIOTransport: java.nio.channels.spi.SelectorProvider selectorProvider> = v;
return;
}
public boolean isOptimizedForMultiplexing()
{
org.glassfish.grizzly.nio.NIOTransport v;
boolean v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: boolean optimizedForMultiplexing>;
return v;
}
public void setOptimizedForMultiplexing(boolean)
{
org.glassfish.grizzly.asyncqueue.AsyncQueueWriter v;
org.glassfish.grizzly.nio.NIOTransport v;
org.glassfish.grizzly.asyncqueue.AsyncQueueIO v;
boolean v, v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v := @parameter: boolean;
v.<org.glassfish.grizzly.nio.NIOTransport: boolean optimizedForMultiplexing> = v;
v = virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.asyncqueue.AsyncQueueIO getAsyncQueueIO()>();
v = interfaceinvoke v.<org.glassfish.grizzly.asyncqueue.AsyncQueueIO: org.glassfish.grizzly.asyncqueue.AsyncQueueWriter getWriter()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
interfaceinvoke v.<org.glassfish.grizzly.asyncqueue.AsyncQueueWriter: void setAllowDirectWrite(boolean)>(v);
return;
}
protected synchronized void startSelectorRunners() throws java.io.IOException
{
org.glassfish.grizzly.nio.NIOTransport v;
org.glassfish.grizzly.nio.SelectorRunner[] v, v;
int v, v, v;
org.glassfish.grizzly.nio.SelectorRunner v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: int selectorRunnersCount>;
v = newarray (org.glassfish.grizzly.nio.SelectorRunner)[v];
v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.SelectorRunner[] selectorRunners> = v;
v = 0;
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: int selectorRunnersCount>;
if v >= v goto label;
v = staticinvoke <org.glassfish.grizzly.nio.SelectorRunner: org.glassfish.grizzly.nio.SelectorRunner create(org.glassfish.grizzly.nio.NIOTransport)>(v);
virtualinvoke v.<org.glassfish.grizzly.nio.SelectorRunner: void start()>();
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.SelectorRunner[] selectorRunners>;
v[v] = v;
v = v + 1;
goto label;
label:
return;
}
protected synchronized void stopSelectorRunners()
{
org.glassfish.grizzly.nio.SelectorRunner[] v, v, v, v;
org.glassfish.grizzly.nio.NIOTransport v;
int v, v;
org.glassfish.grizzly.nio.SelectorRunner v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.SelectorRunner[] selectorRunners>;
if v != null goto label;
return;
label:
v = 0;
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.SelectorRunner[] selectorRunners>;
v = lengthof v;
if v >= v goto label;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.SelectorRunner[] selectorRunners>;
v = v[v];
if v == null goto label;
virtualinvoke v.<org.glassfish.grizzly.nio.SelectorRunner: void stop()>();
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.SelectorRunner[] selectorRunners>;
v[v] = null;
label:
v = v + 1;
goto label;
label:
v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.SelectorRunner[] selectorRunners> = null;
return;
}
public org.glassfish.grizzly.nio.NIOChannelDistributor getNIOChannelDistributor()
{
org.glassfish.grizzly.nio.NIOChannelDistributor v;
org.glassfish.grizzly.nio.NIOTransport v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.NIOChannelDistributor nioChannelDistributor>;
return v;
}
public void setNIOChannelDistributor(org.glassfish.grizzly.nio.NIOChannelDistributor)
{
org.glassfish.grizzly.nio.NIOChannelDistributor v;
org.glassfish.grizzly.nio.NIOTransport v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v := @parameter: org.glassfish.grizzly.nio.NIOChannelDistributor;
v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.NIOChannelDistributor nioChannelDistributor> = v;
staticinvoke <org.glassfish.grizzly.nio.NIOTransport: void notifyProbesConfigChanged(org.glassfish.grizzly.AbstractTransport)>(v);
return;
}
public void notifyTransportError(java.lang.Throwable)
{
java.lang.Throwable v;
org.glassfish.grizzly.nio.NIOTransport v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v := @parameter: java.lang.Throwable;
staticinvoke <org.glassfish.grizzly.nio.NIOTransport: void notifyProbesError(org.glassfish.grizzly.nio.NIOTransport,java.lang.Throwable)>(v, v);
return;
}
protected org.glassfish.grizzly.nio.SelectorRunner[] getSelectorRunners()
{
org.glassfish.grizzly.nio.NIOTransport v;
org.glassfish.grizzly.nio.SelectorRunner[] v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.SelectorRunner[] selectorRunners>;
return v;
}
protected static void notifyProbesError(org.glassfish.grizzly.nio.NIOTransport, java.lang.Throwable)
{
java.lang.Throwable v;
org.glassfish.grizzly.monitoring.DefaultMonitoringConfig v;
java.lang.Object[] v;
org.glassfish.grizzly.nio.NIOTransport v;
int v, v;
org.glassfish.grizzly.TransportProbe v;
v := @parameter: org.glassfish.grizzly.nio.NIOTransport;
v := @parameter: java.lang.Throwable;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.monitoring.DefaultMonitoringConfig transportMonitoringConfig>;
v = virtualinvoke v.<org.glassfish.grizzly.monitoring.DefaultMonitoringConfig: java.lang.Object[] getProbesUnsafe()>();
if v == null goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
interfaceinvoke v.<org.glassfish.grizzly.TransportProbe: void onErrorEvent(org.glassfish.grizzly.Transport,java.lang.Throwable)>(v, v);
v = v + 1;
goto label;
label:
return;
}
protected static void notifyProbesStart(org.glassfish.grizzly.nio.NIOTransport)
{
org.glassfish.grizzly.monitoring.DefaultMonitoringConfig v;
java.lang.Object[] v;
org.glassfish.grizzly.nio.NIOTransport v;
int v, v;
org.glassfish.grizzly.TransportProbe v;
v := @parameter: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.monitoring.DefaultMonitoringConfig transportMonitoringConfig>;
v = virtualinvoke v.<org.glassfish.grizzly.monitoring.DefaultMonitoringConfig: java.lang.Object[] getProbesUnsafe()>();
if v == null goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
interfaceinvoke v.<org.glassfish.grizzly.TransportProbe: void onStartEvent(org.glassfish.grizzly.Transport)>(v);
v = v + 1;
goto label;
label:
return;
}
protected static void notifyProbesStop(org.glassfish.grizzly.nio.NIOTransport)
{
org.glassfish.grizzly.monitoring.DefaultMonitoringConfig v;
java.lang.Object[] v;
org.glassfish.grizzly.nio.NIOTransport v;
int v, v;
org.glassfish.grizzly.TransportProbe v;
v := @parameter: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.monitoring.DefaultMonitoringConfig transportMonitoringConfig>;
v = virtualinvoke v.<org.glassfish.grizzly.monitoring.DefaultMonitoringConfig: java.lang.Object[] getProbesUnsafe()>();
if v == null goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
interfaceinvoke v.<org.glassfish.grizzly.TransportProbe: void onStopEvent(org.glassfish.grizzly.Transport)>(v);
v = v + 1;
goto label;
label:
return;
}
protected static void notifyProbesPause(org.glassfish.grizzly.nio.NIOTransport)
{
org.glassfish.grizzly.monitoring.DefaultMonitoringConfig v;
java.lang.Object[] v;
org.glassfish.grizzly.nio.NIOTransport v;
int v, v;
org.glassfish.grizzly.TransportProbe v;
v := @parameter: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.monitoring.DefaultMonitoringConfig transportMonitoringConfig>;
v = virtualinvoke v.<org.glassfish.grizzly.monitoring.DefaultMonitoringConfig: java.lang.Object[] getProbesUnsafe()>();
if v == null goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
interfaceinvoke v.<org.glassfish.grizzly.TransportProbe: void onPauseEvent(org.glassfish.grizzly.Transport)>(v);
v = v + 1;
goto label;
label:
return;
}
protected static void notifyProbesResume(org.glassfish.grizzly.nio.NIOTransport)
{
org.glassfish.grizzly.monitoring.DefaultMonitoringConfig v;
java.lang.Object[] v;
org.glassfish.grizzly.nio.NIOTransport v;
int v, v;
org.glassfish.grizzly.TransportProbe v;
v := @parameter: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.monitoring.DefaultMonitoringConfig transportMonitoringConfig>;
v = virtualinvoke v.<org.glassfish.grizzly.monitoring.DefaultMonitoringConfig: java.lang.Object[] getProbesUnsafe()>();
if v == null goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
interfaceinvoke v.<org.glassfish.grizzly.TransportProbe: void onResumeEvent(org.glassfish.grizzly.Transport)>(v);
v = v + 1;
goto label;
label:
return;
}
public void start() throws java.io.IOException
{
org.glassfish.grizzly.nio.RoundRobinConnectionDistributor v;
org.glassfish.grizzly.memory.MemoryManager v, v;
java.lang.Integer v;
java.nio.channels.spi.SelectorProvider v, v, v;
org.glassfish.grizzly.nio.NIOChannelDistributor v;
org.glassfish.grizzly.utils.StateHolder v, v, v, v;
org.glassfish.grizzly.nio.DefaultSelectionKeyHandler v;
java.lang.Throwable v;
org.glassfish.grizzly.threadpool.GrizzlyExecutorService v, v;
java.lang.Object[] v;
org.glassfish.grizzly.Transport$State v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock v;
org.glassfish.grizzly.StandaloneProcessor v;
org.glassfish.grizzly.nio.SelectorHandler v;
org.glassfish.grizzly.monitoring.DefaultMonitoringConfig v;
org.glassfish.grizzly.nio.SelectionKeyHandler v;
org.glassfish.grizzly.nio.DefaultSelectorHandler v;
java.lang.String v;
org.glassfish.grizzly.monitoring.MonitoringConfig v, v;
org.glassfish.grizzly.IOStrategy v, v;
org.glassfish.grizzly.Processor v;
org.glassfish.grizzly.nio.tmpselectors.TemporarySelectorIO v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v;
org.glassfish.grizzly.strategies.WorkerThreadIOStrategy v;
org.glassfish.grizzly.nio.NIOTransport v;
boolean v, v, v;
org.glassfish.grizzly.nio.tmpselectors.TemporarySelectorPool v;
java.util.logging.Logger v, v;
org.glassfish.grizzly.threadpool.ThreadPoolConfig v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.logging.Level v, v;
org.glassfish.grizzly.ProcessorSelector v;
int v, v, v, v;
java.util.concurrent.ExecutorService v, v, v, v;
java.lang.Object v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: java.util.concurrent.locks.ReentrantReadWriteLock getStateLocker()>();
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: java.lang.Object getState()>();
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State STOPPED>;
if v == v goto label;
v = <org.glassfish.grizzly.nio.NIOTransport: java.util.logging.Logger LOGGER>;
v = <java.util.logging.Level: java.util.logging.Level WARNING>;
v = staticinvoke <org.glassfish.grizzly.localization.LogMessages: java.lang.String WARNING_GRIZZLY_TRANSPORT_NOT_STOP_STATE_EXCEPTION()>();
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, v);
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
return;
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State STARTING>;
virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: void setState(java.lang.Object)>(v);
staticinvoke <org.glassfish.grizzly.nio.NIOTransport: void notifyProbesBeforeStart(org.glassfish.grizzly.AbstractTransport)>(v);
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.nio.channels.spi.SelectorProvider selectorProvider>;
if v != null goto label;
v = staticinvoke <java.nio.channels.spi.SelectorProvider: java.nio.channels.spi.SelectorProvider provider()>();
v.<org.glassfish.grizzly.nio.NIOTransport: java.nio.channels.spi.SelectorProvider selectorProvider> = v;
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.SelectorHandler selectorHandler>;
if v != null goto label;
v = new org.glassfish.grizzly.nio.DefaultSelectorHandler;
specialinvoke v.<org.glassfish.grizzly.nio.DefaultSelectorHandler: void <init>()>();
v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.SelectorHandler selectorHandler> = v;
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.SelectionKeyHandler selectionKeyHandler>;
if v != null goto label;
v = new org.glassfish.grizzly.nio.DefaultSelectionKeyHandler;
specialinvoke v.<org.glassfish.grizzly.nio.DefaultSelectionKeyHandler: void <init>()>();
v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.SelectionKeyHandler selectionKeyHandler> = v;
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.Processor processor>;
if v != null goto label;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.ProcessorSelector processorSelector>;
if v != null goto label;
v = new org.glassfish.grizzly.StandaloneProcessor;
specialinvoke v.<org.glassfish.grizzly.StandaloneProcessor: void <init>()>();
v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.Processor processor> = v;
label:
v = virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: int getSelectorRunnersCount()>();
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.NIOChannelDistributor nioChannelDistributor>;
if v != null goto label;
v = new org.glassfish.grizzly.nio.RoundRobinConnectionDistributor;
specialinvoke v.<org.glassfish.grizzly.nio.RoundRobinConnectionDistributor: void <init>(org.glassfish.grizzly.nio.NIOTransport)>(v);
v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.NIOChannelDistributor nioChannelDistributor> = v;
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.util.concurrent.ExecutorService kernelPool>;
if v != null goto label;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.threadpool.ThreadPoolConfig kernelPoolConfig>;
if v != null goto label;
v = staticinvoke <org.glassfish.grizzly.threadpool.ThreadPoolConfig: org.glassfish.grizzly.threadpool.ThreadPoolConfig defaultConfig()>();
v = virtualinvoke v.<org.glassfish.grizzly.threadpool.ThreadPoolConfig: org.glassfish.grizzly.threadpool.ThreadPoolConfig setCorePoolSize(int)>(v);
v = virtualinvoke v.<org.glassfish.grizzly.threadpool.ThreadPoolConfig: org.glassfish.grizzly.threadpool.ThreadPoolConfig setMaxPoolSize(int)>(v);
v = virtualinvoke v.<org.glassfish.grizzly.threadpool.ThreadPoolConfig: org.glassfish.grizzly.threadpool.ThreadPoolConfig setPoolName(java.lang.String)>("grizzly-nio-kernel");
v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.threadpool.ThreadPoolConfig kernelPoolConfig> = v;
goto label;
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.threadpool.ThreadPoolConfig kernelPoolConfig>;
v = virtualinvoke v.<org.glassfish.grizzly.threadpool.ThreadPoolConfig: int getMaxPoolSize()>();
if v >= v goto label;
v = <org.glassfish.grizzly.nio.NIOTransport: java.util.logging.Logger LOGGER>;
v = <java.util.logging.Level: java.util.logging.Level INFO>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object)>(v, "Adjusting kernel thread pool to max size {0} to handle configured number of SelectorRunners", v);
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.threadpool.ThreadPoolConfig kernelPoolConfig>;
v = virtualinvoke v.<org.glassfish.grizzly.threadpool.ThreadPoolConfig: org.glassfish.grizzly.threadpool.ThreadPoolConfig setCorePoolSize(int)>(v);
virtualinvoke v.<org.glassfish.grizzly.threadpool.ThreadPoolConfig: org.glassfish.grizzly.threadpool.ThreadPoolConfig setMaxPoolSize(int)>(v);
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.threadpool.ThreadPoolConfig kernelPoolConfig>;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.memory.MemoryManager memoryManager>;
virtualinvoke v.<org.glassfish.grizzly.threadpool.ThreadPoolConfig: org.glassfish.grizzly.threadpool.ThreadPoolConfig setMemoryManager(org.glassfish.grizzly.memory.MemoryManager)>(v);
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.threadpool.ThreadPoolConfig kernelPoolConfig>;
v = staticinvoke <org.glassfish.grizzly.threadpool.GrizzlyExecutorService: org.glassfish.grizzly.threadpool.GrizzlyExecutorService createInstance(org.glassfish.grizzly.threadpool.ThreadPoolConfig)>(v);
virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: void setKernelPool0(java.util.concurrent.ExecutorService)>(v);
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.util.concurrent.ExecutorService workerThreadPool>;
if v != null goto label;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.threadpool.ThreadPoolConfig workerPoolConfig>;
if v == null goto label;
v = virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.monitoring.MonitoringConfig getThreadPoolMonitoringConfig()>();
v = interfaceinvoke v.<org.glassfish.grizzly.monitoring.MonitoringConfig: boolean hasProbes()>();
if v == 0 goto label;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.threadpool.ThreadPoolConfig workerPoolConfig>;
v = virtualinvoke v.<org.glassfish.grizzly.threadpool.ThreadPoolConfig: org.glassfish.grizzly.monitoring.DefaultMonitoringConfig getInitialMonitoringConfig()>();
v = virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.monitoring.MonitoringConfig getThreadPoolMonitoringConfig()>();
v = interfaceinvoke v.<org.glassfish.grizzly.monitoring.MonitoringConfig: java.lang.Object[] getProbes()>();
virtualinvoke v.<org.glassfish.grizzly.monitoring.DefaultMonitoringConfig: void addProbes(java.lang.Object[])>(v);
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.threadpool.ThreadPoolConfig workerPoolConfig>;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.memory.MemoryManager memoryManager>;
virtualinvoke v.<org.glassfish.grizzly.threadpool.ThreadPoolConfig: org.glassfish.grizzly.threadpool.ThreadPoolConfig setMemoryManager(org.glassfish.grizzly.memory.MemoryManager)>(v);
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.threadpool.ThreadPoolConfig workerPoolConfig>;
v = staticinvoke <org.glassfish.grizzly.threadpool.GrizzlyExecutorService: org.glassfish.grizzly.threadpool.GrizzlyExecutorService createInstance(org.glassfish.grizzly.threadpool.ThreadPoolConfig)>(v);
virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: void setWorkerThreadPool0(java.util.concurrent.ExecutorService)>(v);
label:
v = 32;
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.util.concurrent.ExecutorService workerThreadPool>;
v = v instanceof org.glassfish.grizzly.threadpool.AbstractThreadPool;
if v == 0 goto label;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.IOStrategy strategy>;
v = v instanceof org.glassfish.grizzly.strategies.SameThreadIOStrategy;
if v == 0 goto label;
v = v;
goto label;
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.util.concurrent.ExecutorService workerThreadPool>;
v = virtualinvoke v.<org.glassfish.grizzly.threadpool.AbstractThreadPool: org.glassfish.grizzly.threadpool.ThreadPoolConfig getConfig()>();
v = virtualinvoke v.<org.glassfish.grizzly.threadpool.ThreadPoolConfig: int getMaxPoolSize()>();
v = staticinvoke <java.lang.Math: int min(int,int)>(v, 32);
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.IOStrategy strategy>;
if v != null goto label;
v = staticinvoke <org.glassfish.grizzly.strategies.WorkerThreadIOStrategy: org.glassfish.grizzly.strategies.WorkerThreadIOStrategy getInstance()>();
v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.IOStrategy strategy> = v;
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.nio.tmpselectors.TemporarySelectorIO temporarySelectorIO>;
v = new org.glassfish.grizzly.nio.tmpselectors.TemporarySelectorPool;
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.nio.channels.spi.SelectorProvider selectorProvider>;
specialinvoke v.<org.glassfish.grizzly.nio.tmpselectors.TemporarySelectorPool: void <init>(java.nio.channels.spi.SelectorProvider,int)>(v, v);
virtualinvoke v.<org.glassfish.grizzly.nio.tmpselectors.TemporarySelectorIO: void setSelectorPool(org.glassfish.grizzly.nio.tmpselectors.TemporarySelectorPool)>(v);
virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: void startSelectorRunners()>();
virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: void listen()>();
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State STARTED>;
virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: void setState(java.lang.Object)>(v);
staticinvoke <org.glassfish.grizzly.nio.NIOTransport: void notifyProbesStart(org.glassfish.grizzly.nio.NIOTransport)>(v);
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public org.glassfish.grizzly.GrizzlyFuture shutdown()
{
java.util.concurrent.TimeUnit v;
org.glassfish.grizzly.nio.NIOTransport v;
org.glassfish.grizzly.GrizzlyFuture v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.GrizzlyFuture shutdown(long,java.util.concurrent.TimeUnit)>(-1L, v);
return v;
}
public org.glassfish.grizzly.GrizzlyFuture shutdown(long, java.util.concurrent.TimeUnit)
{
java.lang.Throwable v;
org.glassfish.grizzly.Transport$State v, v, v, v;
long v;
java.util.concurrent.locks.ReentrantReadWriteLock v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v;
org.glassfish.grizzly.nio.NIOTransport v;
org.glassfish.grizzly.GrizzlyFuture v, v;
org.glassfish.grizzly.nio.GracefulShutdownRunner v;
java.util.concurrent.ExecutorService v, v, v;
boolean v;
java.util.Set v, v, v;
org.glassfish.grizzly.utils.StateHolder v, v, v;
java.util.concurrent.TimeUnit v;
java.lang.Object v;
org.glassfish.grizzly.impl.FutureImpl v, v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: java.util.concurrent.locks.ReentrantReadWriteLock getStateLocker()>();
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: java.lang.Object getState()>();
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State STOPPING>;
if v != v goto label;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.impl.FutureImpl shutdownFuture>;
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
return v;
label:
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State STOPPED>;
if v != v goto label;
v = staticinvoke <org.glassfish.grizzly.utils.Futures: org.glassfish.grizzly.GrizzlyFuture createReadyFuture(java.lang.Object)>(v);
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
return v;
label:
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State PAUSED>;
if v != v goto label;
virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: void resume()>();
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State STOPPING>;
virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: void setState(java.lang.Object)>(v);
virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: void unbindAll()>();
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.util.Set shutdownListeners>;
if v == null goto label;
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.util.Set shutdownListeners>;
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
v = staticinvoke <org.glassfish.grizzly.utils.Futures: org.glassfish.grizzly.impl.FutureImpl createSafeFuture()>();
v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.impl.FutureImpl shutdownFuture> = v;
v = virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: java.util.concurrent.ExecutorService createShutdownExecutorService()>();
v.<org.glassfish.grizzly.nio.NIOTransport: java.util.concurrent.ExecutorService shutdownService> = v;
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.util.concurrent.ExecutorService shutdownService>;
v = new org.glassfish.grizzly.nio.GracefulShutdownRunner;
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.util.Set shutdownListeners>;
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.util.concurrent.ExecutorService shutdownService>;
specialinvoke v.<org.glassfish.grizzly.nio.GracefulShutdownRunner: void <init>(org.glassfish.grizzly.nio.NIOTransport,java.util.Set,java.util.concurrent.ExecutorService,long,java.util.concurrent.TimeUnit)>(v, v, v, v, v);
interfaceinvoke v.<java.util.concurrent.ExecutorService: void execute(java.lang.Runnable)>(v);
v.<org.glassfish.grizzly.nio.NIOTransport: java.util.Set shutdownListeners> = null;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.impl.FutureImpl shutdownFuture>;
goto label;
label:
virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: void finalizeShutdown()>();
v = staticinvoke <org.glassfish.grizzly.utils.Futures: org.glassfish.grizzly.GrizzlyFuture createReadyFuture(java.lang.Object)>(v);
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
return v;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
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;
}
public void shutdownNow() throws java.io.IOException
{
java.lang.Throwable v;
org.glassfish.grizzly.Transport$State v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v;
org.glassfish.grizzly.utils.StateHolder v, v, v;
org.glassfish.grizzly.nio.NIOTransport v;
java.lang.Object v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: java.util.concurrent.locks.ReentrantReadWriteLock getStateLocker()>();
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: java.lang.Object getState()>();
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State STOPPED>;
if v != v goto label;
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
return;
label:
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State PAUSED>;
if v != v goto label;
virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: void resume()>();
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State STOPPING>;
virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: void setState(java.lang.Object)>(v);
virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: void unbindAll()>();
virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: void finalizeShutdown()>();
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected abstract void closeConnection(org.glassfish.grizzly.Connection) throws java.io.IOException;
protected abstract org.glassfish.grizzly.nio.tmpselectors.TemporarySelectorIO createTemporarySelectorIO();
protected abstract void listen();
protected int getDefaultSelectorRunnersCount()
{
int v;
org.glassfish.grizzly.nio.NIOTransport v;
java.lang.Runtime v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = staticinvoke <java.lang.Runtime: java.lang.Runtime getRuntime()>();
v = virtualinvoke v.<java.lang.Runtime: int availableProcessors()>();
return v;
}
protected void finalizeShutdown()
{
org.glassfish.grizzly.Transport$State v;
org.glassfish.grizzly.nio.NIOTransport v;
java.lang.Thread v;
java.util.concurrent.ExecutorService v, v, v, v, v, v, v;
boolean v, v, v;
org.glassfish.grizzly.utils.StateHolder v;
org.glassfish.grizzly.impl.FutureImpl v, v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.util.concurrent.ExecutorService shutdownService>;
if v == null goto label;
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.util.concurrent.ExecutorService shutdownService>;
v = interfaceinvoke v.<java.util.concurrent.ExecutorService: boolean isShutdown()>();
if v != 0 goto label;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = virtualinvoke v.<java.lang.Thread: boolean isInterrupted()>();
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.util.concurrent.ExecutorService shutdownService>;
interfaceinvoke v.<java.util.concurrent.ExecutorService: java.util.List shutdownNow()>();
v.<org.glassfish.grizzly.nio.NIOTransport: java.util.concurrent.ExecutorService shutdownService> = null;
if v != 0 goto label;
staticinvoke <java.lang.Thread: boolean interrupted()>();
label:
staticinvoke <org.glassfish.grizzly.nio.NIOTransport: void notifyProbesBeforeStop(org.glassfish.grizzly.AbstractTransport)>(v);
virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: void stopSelectorRunners()>();
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.util.concurrent.ExecutorService workerThreadPool>;
if v == null goto label;
v = v.<org.glassfish.grizzly.nio.NIOTransport: boolean managedWorkerPool>;
if v == 0 goto label;
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.util.concurrent.ExecutorService workerThreadPool>;
interfaceinvoke v.<java.util.concurrent.ExecutorService: void shutdown()>();
v.<org.glassfish.grizzly.nio.NIOTransport: java.util.concurrent.ExecutorService workerThreadPool> = null;
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.util.concurrent.ExecutorService kernelPool>;
if v == null goto label;
v = v.<org.glassfish.grizzly.nio.NIOTransport: java.util.concurrent.ExecutorService kernelPool>;
interfaceinvoke v.<java.util.concurrent.ExecutorService: java.util.List shutdownNow()>();
v.<org.glassfish.grizzly.nio.NIOTransport: java.util.concurrent.ExecutorService kernelPool> = null;
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State STOPPED>;
virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: void setState(java.lang.Object)>(v);
staticinvoke <org.glassfish.grizzly.nio.NIOTransport: void notifyProbesStop(org.glassfish.grizzly.nio.NIOTransport)>(v);
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.impl.FutureImpl shutdownFuture>;
if v == null goto label;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.impl.FutureImpl shutdownFuture>;
interfaceinvoke v.<org.glassfish.grizzly.impl.FutureImpl: void result(java.lang.Object)>(v);
v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.impl.FutureImpl shutdownFuture> = null;
label:
return;
}
public void pause()
{
java.lang.Throwable v;
org.glassfish.grizzly.Transport$State v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v;
java.util.logging.Logger v;
org.glassfish.grizzly.utils.StateHolder v, v, v, v;
java.util.logging.Level v;
org.glassfish.grizzly.nio.NIOTransport v;
java.lang.Object v;
java.lang.String v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: java.util.concurrent.locks.ReentrantReadWriteLock getStateLocker()>();
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: java.lang.Object getState()>();
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State STARTED>;
if v == v goto label;
v = <org.glassfish.grizzly.nio.NIOTransport: java.util.logging.Logger LOGGER>;
v = <java.util.logging.Level: java.util.logging.Level WARNING>;
v = staticinvoke <org.glassfish.grizzly.localization.LogMessages: java.lang.String WARNING_GRIZZLY_TRANSPORT_NOT_START_STATE_EXCEPTION()>();
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, v);
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
return;
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State PAUSING>;
virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: void setState(java.lang.Object)>(v);
staticinvoke <org.glassfish.grizzly.nio.NIOTransport: void notifyProbesBeforePause(org.glassfish.grizzly.AbstractTransport)>(v);
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State PAUSED>;
virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: void setState(java.lang.Object)>(v);
staticinvoke <org.glassfish.grizzly.nio.NIOTransport: void notifyProbesPause(org.glassfish.grizzly.nio.NIOTransport)>(v);
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void resume()
{
java.lang.Throwable v;
org.glassfish.grizzly.Transport$State v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v;
java.util.logging.Logger v;
org.glassfish.grizzly.utils.StateHolder v, v, v, v;
java.util.logging.Level v;
org.glassfish.grizzly.nio.NIOTransport v;
java.lang.Object v;
java.lang.String v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: java.util.concurrent.locks.ReentrantReadWriteLock getStateLocker()>();
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: java.lang.Object getState()>();
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State PAUSED>;
if v == v goto label;
v = <org.glassfish.grizzly.nio.NIOTransport: java.util.logging.Logger LOGGER>;
v = <java.util.logging.Level: java.util.logging.Level WARNING>;
v = staticinvoke <org.glassfish.grizzly.localization.LogMessages: java.lang.String WARNING_GRIZZLY_TRANSPORT_NOT_PAUSE_STATE_EXCEPTION()>();
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, v);
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
return;
label:
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State STARTING>;
virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: void setState(java.lang.Object)>(v);
staticinvoke <org.glassfish.grizzly.nio.NIOTransport: void notifyProbesBeforeResume(org.glassfish.grizzly.AbstractTransport)>(v);
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.utils.StateHolder state>;
v = <org.glassfish.grizzly.Transport$State: org.glassfish.grizzly.Transport$State STARTED>;
virtualinvoke v.<org.glassfish.grizzly.utils.StateHolder: void setState(java.lang.Object)>(v);
staticinvoke <org.glassfish.grizzly.nio.NIOTransport: void notifyProbesResume(org.glassfish.grizzly.nio.NIOTransport)>(v);
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected void configureNIOConnection(org.glassfish.grizzly.nio.NIOConnection)
{
java.lang.Object[] v;
long v, v;
org.glassfish.grizzly.Processor v;
java.util.concurrent.TimeUnit v, v;
org.glassfish.grizzly.monitoring.DefaultMonitoringConfig v, v;
org.glassfish.grizzly.nio.NIOTransport v;
org.glassfish.grizzly.ProcessorSelector v;
org.glassfish.grizzly.nio.NIOConnection v;
boolean v, v, v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v := @parameter: org.glassfish.grizzly.nio.NIOConnection;
v = v.<org.glassfish.grizzly.nio.NIOTransport: boolean isBlocking>;
virtualinvoke v.<org.glassfish.grizzly.nio.NIOConnection: void configureBlocking(boolean)>(v);
v = v.<org.glassfish.grizzly.nio.NIOTransport: boolean isStandalone>;
virtualinvoke v.<org.glassfish.grizzly.nio.NIOConnection: void configureStandalone(boolean)>(v);
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.Processor processor>;
virtualinvoke v.<org.glassfish.grizzly.nio.NIOConnection: void setProcessor(org.glassfish.grizzly.Processor)>(v);
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.ProcessorSelector processorSelector>;
virtualinvoke v.<org.glassfish.grizzly.nio.NIOConnection: void setProcessorSelector(org.glassfish.grizzly.ProcessorSelector)>(v);
v = v.<org.glassfish.grizzly.nio.NIOTransport: long readTimeout>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
virtualinvoke v.<org.glassfish.grizzly.nio.NIOConnection: void setReadTimeout(long,java.util.concurrent.TimeUnit)>(v, v);
v = v.<org.glassfish.grizzly.nio.NIOTransport: long writeTimeout>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
virtualinvoke v.<org.glassfish.grizzly.nio.NIOConnection: void setWriteTimeout(long,java.util.concurrent.TimeUnit)>(v, v);
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.monitoring.DefaultMonitoringConfig connectionMonitoringConfig>;
v = virtualinvoke v.<org.glassfish.grizzly.monitoring.DefaultMonitoringConfig: boolean hasProbes()>();
if v == 0 goto label;
v = v.<org.glassfish.grizzly.nio.NIOTransport: org.glassfish.grizzly.monitoring.DefaultMonitoringConfig connectionMonitoringConfig>;
v = virtualinvoke v.<org.glassfish.grizzly.monitoring.DefaultMonitoringConfig: java.lang.Object[] getProbes()>();
virtualinvoke v.<org.glassfish.grizzly.nio.NIOConnection: void setMonitoringProbes(org.glassfish.grizzly.ConnectionProbe[])>(v);
label:
return;
}
public boolean isReuseAddress()
{
org.glassfish.grizzly.nio.NIOTransport v;
boolean v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: boolean reuseAddress>;
return v;
}
public void setReuseAddress(boolean)
{
org.glassfish.grizzly.nio.NIOTransport v;
boolean v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v := @parameter: boolean;
v.<org.glassfish.grizzly.nio.NIOTransport: boolean reuseAddress> = v;
staticinvoke <org.glassfish.grizzly.nio.NIOTransport: void notifyProbesConfigChanged(org.glassfish.grizzly.AbstractTransport)>(v);
return;
}
public int getClientSocketSoTimeout()
{
int v;
org.glassfish.grizzly.nio.NIOTransport v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: int clientSocketSoTimeout>;
return v;
}
public void setClientSocketSoTimeout(int)
{
int v;
java.lang.IllegalArgumentException v;
org.glassfish.grizzly.nio.NIOTransport v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v := @parameter: int;
if v >= 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("socketTimeout can\'t be negative value");
throw v;
label:
v.<org.glassfish.grizzly.nio.NIOTransport: int clientSocketSoTimeout> = v;
staticinvoke <org.glassfish.grizzly.nio.NIOTransport: void notifyProbesConfigChanged(org.glassfish.grizzly.AbstractTransport)>(v);
return;
}
public int getConnectionTimeout()
{
int v;
org.glassfish.grizzly.nio.NIOTransport v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: int connectionTimeout>;
return v;
}
public void setConnectionTimeout(int)
{
int v;
org.glassfish.grizzly.nio.NIOTransport v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v := @parameter: int;
v.<org.glassfish.grizzly.nio.NIOTransport: int connectionTimeout> = v;
staticinvoke <org.glassfish.grizzly.nio.NIOTransport: void notifyProbesConfigChanged(org.glassfish.grizzly.AbstractTransport)>(v);
return;
}
public int getServerSocketSoTimeout()
{
int v;
org.glassfish.grizzly.nio.NIOTransport v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = v.<org.glassfish.grizzly.nio.NIOTransport: int serverSocketSoTimeout>;
return v;
}
public void setServerSocketSoTimeout(int)
{
int v;
java.lang.IllegalArgumentException v;
org.glassfish.grizzly.nio.NIOTransport v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v := @parameter: int;
if v >= 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("socketTimeout can\'t be negative value");
throw v;
label:
v.<org.glassfish.grizzly.nio.NIOTransport: int serverSocketSoTimeout> = v;
staticinvoke <org.glassfish.grizzly.nio.NIOTransport: void notifyProbesConfigChanged(org.glassfish.grizzly.AbstractTransport)>(v);
return;
}
protected java.util.concurrent.ExecutorService createShutdownExecutorService()
{
org.glassfish.grizzly.nio.NIOTransport v;
int v;
java.lang.String v, v, v;
java.util.concurrent.ExecutorService v;
org.glassfish.grizzly.nio.NIOTransport$1 v;
v := @this: org.glassfish.grizzly.nio.NIOTransport;
v = virtualinvoke v.<org.glassfish.grizzly.nio.NIOTransport: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
v = staticinvoke <java.lang.Integer: java.lang.String toHexString(int)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, 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[])>("\u[\u]-Shutdown-Thread");
v = new org.glassfish.grizzly.nio.NIOTransport$1;
specialinvoke v.<org.glassfish.grizzly.nio.NIOTransport$1: void <init>(org.glassfish.grizzly.nio.NIOTransport,java.lang.String)>(v, v);
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ExecutorService newFixedThreadPool(int,java.util.concurrent.ThreadFactory)>(2, v);
return v;
}
static void <clinit>()
{
java.util.logging.Logger v;
v = staticinvoke <org.glassfish.grizzly.Grizzly: java.util.logging.Logger logger(java.lang.Class)>(class "Lorg/glassfish/grizzly/nio/NIOTransport;");
<org.glassfish.grizzly.nio.NIOTransport: java.util.logging.Logger LOGGER> = v;
return;
}
}