final class org.glassfish.grizzly.http.DefaultOutputSink$FlushCompletionHandler extends org.glassfish.grizzly.http.utils.ChunkedCompletionHandler
{
final org.glassfish.grizzly.http.DefaultOutputSink this$0;
public void <init>(org.glassfish.grizzly.http.DefaultOutputSink, org.glassfish.grizzly.CompletionHandler)
{
org.glassfish.grizzly.http.DefaultOutputSink v;
org.glassfish.grizzly.http.DefaultOutputSink$FlushCompletionHandler v;
org.glassfish.grizzly.CompletionHandler v;
v := @this: org.glassfish.grizzly.http.DefaultOutputSink$FlushCompletionHandler;
v := @parameter: org.glassfish.grizzly.http.DefaultOutputSink;
v := @parameter: org.glassfish.grizzly.CompletionHandler;
v.<org.glassfish.grizzly.http.DefaultOutputSink$FlushCompletionHandler: org.glassfish.grizzly.http.DefaultOutputSink this$0> = v;
specialinvoke v.<org.glassfish.grizzly.http.utils.ChunkedCompletionHandler: void <init>(org.glassfish.grizzly.CompletionHandler)>(v);
return;
}
protected void done0()
{
java.lang.Throwable v, v;
org.glassfish.grizzly.http.DefaultOutputSink v, v, v, v, v, v, v, v;
java.util.concurrent.atomic.AtomicInteger v;
org.glassfish.grizzly.http.Http2Stream v;
boolean v, v;
java.lang.Exception v;
org.glassfish.grizzly.http.DefaultOutputSink$FlushCompletionHandler v;
org.glassfish.grizzly.http.BundleQueue v, v, v, v;
java.lang.Object v, v, v;
v := @this: org.glassfish.grizzly.http.DefaultOutputSink$FlushCompletionHandler;
v = v.<org.glassfish.grizzly.http.DefaultOutputSink$FlushCompletionHandler: org.glassfish.grizzly.http.DefaultOutputSink this$0>;
v = v.<org.glassfish.grizzly.http.DefaultOutputSink: java.lang.Object flushHandlersSync>;
entermonitor v;
label:
v = v.<org.glassfish.grizzly.http.DefaultOutputSink$FlushCompletionHandler: org.glassfish.grizzly.http.DefaultOutputSink this$0>;
v = v.<org.glassfish.grizzly.http.DefaultOutputSink: java.util.concurrent.atomic.AtomicInteger unflushedWritesCounter>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int decrementAndGet()>();
v = v.<org.glassfish.grizzly.http.DefaultOutputSink$FlushCompletionHandler: org.glassfish.grizzly.http.DefaultOutputSink this$0>;
v = v.<org.glassfish.grizzly.http.DefaultOutputSink: org.glassfish.grizzly.http.BundleQueue flushHandlersQueue>;
if v == null goto label;
v = v.<org.glassfish.grizzly.http.DefaultOutputSink$FlushCompletionHandler: org.glassfish.grizzly.http.DefaultOutputSink this$0>;
v = v.<org.glassfish.grizzly.http.DefaultOutputSink: org.glassfish.grizzly.http.BundleQueue flushHandlersQueue>;
v = virtualinvoke v.<org.glassfish.grizzly.http.BundleQueue: boolean nextBundle()>();
if v != 0 goto label;
label:
exitmonitor v;
label:
return;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.glassfish.grizzly.http.DefaultOutputSink$FlushCompletionHandler: org.glassfish.grizzly.http.DefaultOutputSink this$0>;
v = v.<org.glassfish.grizzly.http.DefaultOutputSink: java.lang.Object flushHandlersSync>;
entermonitor v;
label:
v = v.<org.glassfish.grizzly.http.DefaultOutputSink$FlushCompletionHandler: org.glassfish.grizzly.http.DefaultOutputSink this$0>;
v = v.<org.glassfish.grizzly.http.DefaultOutputSink: org.glassfish.grizzly.http.BundleQueue flushHandlersQueue>;
v = virtualinvoke v.<org.glassfish.grizzly.http.BundleQueue: java.lang.Object next()>();
v = v.<org.glassfish.grizzly.http.DefaultOutputSink$FlushCompletionHandler: org.glassfish.grizzly.http.DefaultOutputSink this$0>;
v = v.<org.glassfish.grizzly.http.DefaultOutputSink: org.glassfish.grizzly.http.BundleQueue flushHandlersQueue>;
v = virtualinvoke v.<org.glassfish.grizzly.http.BundleQueue: boolean hasNext()>();
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.glassfish.grizzly.http.DefaultOutputSink$FlushCompletionHandler: org.glassfish.grizzly.http.DefaultOutputSink this$0>;
v = v.<org.glassfish.grizzly.http.DefaultOutputSink: org.glassfish.grizzly.http.Http2Stream stream>;
interfaceinvoke v.<org.glassfish.grizzly.CompletionHandler: void completed(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
if v != 0 goto label;
return;
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;
catch java.lang.Exception from label to label with label;
}
}