public class org.apache.zookeeper.server.quorum.LearnerSender extends org.apache.zookeeper.server.ZooKeeperCriticalThread
{
private static final org.slf4j.Logger LOG;
private final java.util.concurrent.LinkedBlockingQueue queuedPackets;
private final org.apache.zookeeper.server.quorum.QuorumPacket proposalOfDeath;
org.apache.zookeeper.server.quorum.Learner learner;
public void <init>(org.apache.zookeeper.server.quorum.Learner)
{
org.apache.zookeeper.server.quorum.LearnerSender v;
long v;
java.util.concurrent.LinkedBlockingQueue v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
org.apache.zookeeper.server.ZooKeeperServerListener v;
org.apache.zookeeper.server.quorum.LearnerZooKeeperServer v, v;
java.lang.String v;
org.apache.zookeeper.server.quorum.Learner v;
v := @this: org.apache.zookeeper.server.quorum.LearnerSender;
v := @parameter: org.apache.zookeeper.server.quorum.Learner;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: long getServerId()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long)>(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[])>("LearnerSender:\u0001");
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: org.apache.zookeeper.server.ZooKeeperServerListener getZooKeeperServerListener()>();
specialinvoke v.<org.apache.zookeeper.server.ZooKeeperCriticalThread: void <init>(java.lang.String,org.apache.zookeeper.server.ZooKeeperServerListener)>(v, v);
v = new java.util.concurrent.LinkedBlockingQueue;
specialinvoke v.<java.util.concurrent.LinkedBlockingQueue: void <init>()>();
v.<org.apache.zookeeper.server.quorum.LearnerSender: java.util.concurrent.LinkedBlockingQueue queuedPackets> = v;
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>()>();
v.<org.apache.zookeeper.server.quorum.LearnerSender: org.apache.zookeeper.server.quorum.QuorumPacket proposalOfDeath> = v;
v.<org.apache.zookeeper.server.quorum.LearnerSender: org.apache.zookeeper.server.quorum.Learner learner> = v;
return;
}
public void run()
{
org.apache.zookeeper.server.quorum.LearnerSender v;
org.apache.zookeeper.server.util.MessageTracker v;
java.io.BufferedOutputStream v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
int v;
org.apache.jute.OutputArchive v;
java.lang.String v, v;
org.slf4j.Logger v;
java.io.IOException v;
java.util.concurrent.LinkedBlockingQueue v, v;
java.lang.InterruptedException v;
java.lang.Object v;
org.apache.zookeeper.server.quorum.Learner v, v, v;
v := @this: org.apache.zookeeper.server.quorum.LearnerSender;
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerSender: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
v = virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: java.lang.Object poll()>();
if v != null goto label;
v = v.<org.apache.zookeeper.server.quorum.LearnerSender: org.apache.zookeeper.server.quorum.Learner learner>;
v = v.<org.apache.zookeeper.server.quorum.Learner: java.io.BufferedOutputStream bufferedOutput>;
virtualinvoke v.<java.io.BufferedOutputStream: void flush()>();
v = v.<org.apache.zookeeper.server.quorum.LearnerSender: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: java.lang.Object take()>();
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerSender: org.apache.zookeeper.server.quorum.QuorumPacket proposalOfDeath>;
if v == v goto label;
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerSender: org.apache.zookeeper.server.quorum.Learner learner>;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.util.MessageTracker messageTracker>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
virtualinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void trackSent(int)>(v);
v = v.<org.apache.zookeeper.server.quorum.LearnerSender: org.apache.zookeeper.server.quorum.Learner learner>;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.jute.OutputArchive leaderOs>;
interfaceinvoke v.<org.apache.jute.OutputArchive: void writeRecord(org.apache.jute.Record,java.lang.String)>(v, "packet");
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSender: java.lang.String getName()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSender: void handleException(java.lang.String,java.lang.Throwable)>(v, v);
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSender: java.lang.String getName()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSender: void handleException(java.lang.String,java.lang.Throwable)>(v, v);
label:
v = <org.apache.zookeeper.server.quorum.LearnerSender: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("LearnerSender exited");
return;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.InterruptedException from label to label with label;
}
public void queuePacket(org.apache.zookeeper.server.quorum.QuorumPacket) throws java.io.IOException
{
org.apache.zookeeper.server.quorum.QuorumPacket v;
org.apache.zookeeper.server.quorum.LearnerSender v;
java.util.concurrent.LinkedBlockingQueue v;
org.apache.zookeeper.server.quorum.Learner v;
java.io.BufferedOutputStream v;
v := @this: org.apache.zookeeper.server.quorum.LearnerSender;
v := @parameter: org.apache.zookeeper.server.quorum.QuorumPacket;
if v != null goto label;
v = v.<org.apache.zookeeper.server.quorum.LearnerSender: org.apache.zookeeper.server.quorum.Learner learner>;
v = v.<org.apache.zookeeper.server.quorum.Learner: java.io.BufferedOutputStream bufferedOutput>;
virtualinvoke v.<java.io.BufferedOutputStream: void flush()>();
goto label;
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerSender: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: boolean add(java.lang.Object)>(v);
label:
return;
}
public void shutdown()
{
org.apache.zookeeper.server.quorum.QuorumPacket v;
org.apache.zookeeper.server.quorum.LearnerSender v;
org.slf4j.Logger v;
java.util.concurrent.LinkedBlockingQueue v, v;
v := @this: org.apache.zookeeper.server.quorum.LearnerSender;
v = <org.apache.zookeeper.server.quorum.LearnerSender: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Shutting down LearnerSender");
v = v.<org.apache.zookeeper.server.quorum.LearnerSender: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: void clear()>();
v = v.<org.apache.zookeeper.server.quorum.LearnerSender: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
v = v.<org.apache.zookeeper.server.quorum.LearnerSender: org.apache.zookeeper.server.quorum.QuorumPacket proposalOfDeath>;
virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: boolean add(java.lang.Object)>(v);
return;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/zookeeper/server/quorum/LearnerSender;");
<org.apache.zookeeper.server.quorum.LearnerSender: org.slf4j.Logger LOG> = v;
return;
}
}