4b  java/lang/Object()V   java/lang/Runtime getRuntime()Ljava/lang/Runtime;  availableProcessors()I  (io/moquette/broker/SessionEventLoopGroup eventLoopsI&java/util/concurrent/ConcurrentHashMap   loopThrownExceptions$Ljava/util/concurrent/ConcurrentMap;"java/util/concurrent/BlockingQueue ! "# sessionQueues%[Ljava/util/concurrent/BlockingQueue;%'java/util/concurrent/ArrayBlockingQueue $' ((I)V*#io/moquette/broker/SessionEventLoop , -.sessionExecutors&[Lio/moquette/broker/SessionEventLoop; )0 1'(Ljava/util/concurrent/BlockingQueue;)V 3 45sessionLoopName(I)Ljava/lang/String; )7 89setName(Ljava/lang/String;)V; <=uncaughtException(Lio/moquette/broker/SessionEventLoopGroup;Lio/moquette/interception/BrokerInterceptor;)Ljava/lang/Thread$UncaughtExceptionHandler; )? @AsetUncaughtExceptionHandler.(Ljava/lang/Thread$UncaughtExceptionHandler;)V )C Dstart FGH Ijava/lang/StringhashCode KLM NOjava/lang/Mathabs(I)IQjava/lang/StringBuilder PTSession Executor PV WXappend-(Ljava/lang/String;)Ljava/lang/StringBuilder; PZ W[(I)Ljava/lang/StringBuilder; P] ^_toString()Ljava/lang/String; a bctargetQueueOrdinal(Ljava/lang/String;)Ie!io/moquette/broker/SessionCommand dg h4(Ljava/lang/String;Ljava/util/concurrent/Callable;)V j klLOGLorg/slf4j/Logger;n!Routing collision for action [{}] pqr storg/slf4j/Loggerwarn'(Ljava/lang/String;Ljava/lang/Object;)Vv6Seems awaiting new route feature completion, skipping. xyz {|)io/moquette/broker/PostOffice$RouteResultfailedQ(Ljava/lang/String;Ljava/lang/String;)Lio/moquette/broker/PostOffice$RouteResult; d~ _ getSessionId7Routing cmd [{}] for session [{}] to event processor {}  java/lang/IntegervalueOf(I)Ljava/lang/Integer; p debug((Ljava/lang/String;[Ljava/lang/Object;)Vjava/util/concurrent/FutureTask callD(Lio/moquette/broker/SessionCommand;)Ljava/util/concurrent/Callable; "(Ljava/util/concurrent/Callable;)V  java/lang/Thread currentThread()Ljava/lang/Thread; )  executeTask$(Ljava/util/concurrent/FutureTask;)V d completableFuture*()Ljava/util/concurrent/CompletableFuture; x successg(Ljava/lang/String;Ljava/util/concurrent/CompletableFuture;)Lio/moquette/broker/PostOffice$RouteResult;  offer(Ljava/lang/Object;)Z4Session command queue {} is full executing action {} p s9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V x {?(Ljava/lang/String;)Lio/moquette/broker/PostOffice$RouteResult; )  interrupt ) join(J)Vjava/lang/InterruptedException/Interrupted while joining session event loop {} ) _getName p info  "java/util/concurrent/ConcurrentMapentrySet()Ljava/util/Set;   java/util/Setiterator()Ljava/util/Iterator;  java/util/IteratorhasNext()Z next()Ljava/lang/Object;java/util/Map$Entry getKey getValuejava/lang/Throwable+Session event loop {} terminated with error p error d execute d complete put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;;io/moquette/interception/messages/InterceptExceptionMessage (Ljava/lang/Throwable;)V  *io/moquette/interception/BrokerInterceptornotifyLoopException@(Lio/moquette/interception/messages/InterceptExceptionMessage;)V  org/slf4j/LoggerFactory getLogger%(Ljava/lang/Class;)Lorg/slf4j/Logger; Signature\[Ljava/util/concurrent/BlockingQueue;>;MLjava/util/concurrent/ConcurrentMap;0(Lio/moquette/interception/BrokerInterceptor;I)VCodeLineNumberTableLocalVariableTableinewLoop%Lio/moquette/broker/SessionEventLoop;this*Lio/moquette/broker/SessionEventLoopGroup; interceptor,Lio/moquette/interception/BrokerInterceptor;sessionQueueSize StackMapTableclientIdLjava/lang/String;sessionLoopThreadName&(Ljava/lang/String;)Ljava/lang/String; targetQueueId routeCommandp(Ljava/lang/String;Ljava/lang/String;Ljava/util/concurrent/Callable;)Lio/moquette/broker/PostOffice$RouteResult;actionDescriptionactionLjava/util/concurrent/Callable;cmd#Lio/moquette/broker/SessionCommand;task!Ljava/util/concurrent/FutureTask;LocalVariableTypeTable3Ljava/util/concurrent/Callable;5Ljava/util/concurrent/FutureTask;(Ljava/lang/String;Ljava/lang/String;Ljava/util/concurrent/Callable;)Lio/moquette/broker/PostOffice$RouteResult; terminate processorex Ljava/lang/InterruptedException; threadName threadErrorLjava/lang/Throwable;loopThrownExceptionEntryLjava/util/Map$Entry;>Ljava/util/Map$Entry;.getEventLoopCountlambda$routeCommand$17(Lio/moquette/broker/SessionCommand;)Ljava/lang/String; Exceptions9java/lang/Exception lambda$new$0V(Lio/moquette/interception/BrokerInterceptor;Ljava/lang/Thread;Ljava/lang/Throwable;)V loopThreadLjava/lang/Thread; SourceFileSessionEventLoopGroup.javaBootstrapMethodsC DEF GH"java/lang/invoke/LambdaMetafactory metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;J*(Ljava/lang/Thread;Ljava/lang/Throwable;)VL M :;P Q 56_ InnerClassesU)java/lang/Thread$UncaughtExceptionHandlerUncaughtExceptionHandlerXio/moquette/broker/PostOffice RouteResult[ java/util/MapEntry^%java/lang/invoke/MethodHandles$Lookup`java/lang/invoke/MethodHandlesLookup kl-."#   I** *Y** >** $Y&S**)+>*;)Y* 2/:*26*+:>B*+Sñ B$.<BMWf p!|)*, >&f#O@& ?bc A +EJ*p /   45 HPYRSUY\ 3  N *+`=*2 78    vdY+-f:+im,ouw*}`6iY,SY}SYSY:*+2+* 2 +i,+ :? ABC!F,GNH^MkNpOzQRTU H  !",~^L#$%&^L#'!dX() *+L+=>+2:*+L+=>,+2::i*L+2+M,FN,:i-˱3;> >Z[Z]3_;b>`@aQ]Weyfghij H*@+,3*- ./y"01% y"029 3 33)74 /* m  56 ? ***} IJK  !"78:; l*,-W+Y- $'( *<=+/> ! i ?@ABIKIBNORS"TV xWYZ\ ]_a