final class org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl extends org.apache.logging.log4j.core.appender.routing.RoutingAppender$RouteAppenderControl
{
private volatile boolean pendingDeletion;
private final java.util.concurrent.atomic.AtomicInteger depth;
void <init>(org.apache.logging.log4j.core.Appender)
{
org.apache.logging.log4j.core.Appender v;
java.util.concurrent.atomic.AtomicInteger v;
org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl v;
v := @this: org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl;
v := @parameter: org.apache.logging.log4j.core.Appender;
specialinvoke v.<org.apache.logging.log4j.core.appender.routing.RoutingAppender$RouteAppenderControl: void <init>(org.apache.logging.log4j.core.Appender)>(v);
v = new java.util.concurrent.atomic.AtomicInteger;
specialinvoke v.<java.util.concurrent.atomic.AtomicInteger: void <init>()>();
v.<org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl: java.util.concurrent.atomic.AtomicInteger depth> = v;
return;
}
void checkout()
{
org.apache.logging.log4j.Logger v;
java.util.concurrent.atomic.AtomicInteger v;
org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl v;
boolean v;
v := @this: org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl;
v = v.<org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl: boolean pendingDeletion>;
if v == 0 goto label;
v = <org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl: org.apache.logging.log4j.Logger LOGGER>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void warn(java.lang.String)>("CreatedRouteAppenderControl.checkout invoked on a RouteAppenderControl that is pending deletion");
label:
v = v.<org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl: java.util.concurrent.atomic.AtomicInteger depth>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int incrementAndGet()>();
return;
}
void release()
{
java.util.concurrent.atomic.AtomicInteger v;
org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl v;
v := @this: org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl;
v = v.<org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl: java.util.concurrent.atomic.AtomicInteger depth>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int decrementAndGet()>();
virtualinvoke v.<org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl: void tryStopAppender()>();
return;
}
void tryStopAppender()
{
org.apache.logging.log4j.Logger v;
java.util.concurrent.atomic.AtomicInteger v;
org.apache.logging.log4j.core.Appender v;
org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl v;
boolean v, v;
v := @this: org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl;
v = v.<org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl: boolean pendingDeletion>;
if v == 0 goto label;
v = v.<org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl: java.util.concurrent.atomic.AtomicInteger depth>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: boolean compareAndSet(int,int)>(0, -100000);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl: org.apache.logging.log4j.core.Appender getAppender()>();
v = <org.apache.logging.log4j.core.appender.routing.RoutingAppender$CreatedRouteAppenderControl: org.apache.logging.log4j.Logger LOGGER>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void debug(java.lang.String,java.lang.Object)>("Stopping appender {}", v);
interfaceinvoke v.<org.apache.logging.log4j.core.Appender: void stop()>();
label:
return;
}
}