classes.io.netty.util.HashedWheelTimer.class Maven / Gradle / Ivy
???? 2? io/netty/util/HashedWheelTimer java/lang/Object io/netty/util/Timer HashedWheelTimer.java io/netty/util/HashedWheelTimer$1 0io/netty/util/HashedWheelTimer$HashedWheelBucket
HashedWheelBucket 1io/netty/util/HashedWheelTimer$HashedWheelTimeout
HashedWheelTimeout %io/netty/util/HashedWheelTimer$Worker Worker logger /Lio/netty/util/internal/logging/InternalLogger; leakDetector $Lio/netty/util/ResourceLeakDetector; FLio/netty/util/ResourceLeakDetector; WORKER_STATE_UPDATER 7Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater; YLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater; leak Lio/netty/util/ResourceLeak; worker 'Lio/netty/util/HashedWheelTimer$Worker; workerThread Ljava/lang/Thread; WORKER_STATE_INIT I WORKER_STATE_STARTED WORKER_STATE_SHUTDOWN workerState tickDuration J wheel 3[Lio/netty/util/HashedWheelTimer$HashedWheelBucket; mask startTimeInitialized %Ljava/util/concurrent/CountDownLatch; timeouts Ljava/util/Queue; FLjava/util/Queue; cancelledTimeouts startTime ()V java/util/concurrent/Executors 7 defaultThreadFactory &()Ljava/util/concurrent/ThreadFactory; 9 :
8 ; '(Ljava/util/concurrent/ThreadFactory;)V 5 =
> this Lio/netty/util/HashedWheelTimer; #(JLjava/util/concurrent/TimeUnit;)V G(Ljava/util/concurrent/ThreadFactory;JLjava/util/concurrent/TimeUnit;)V 5 C
D unit Ljava/util/concurrent/TimeUnit; $(JLjava/util/concurrent/TimeUnit;I)V H(Ljava/util/concurrent/ThreadFactory;JLjava/util/concurrent/TimeUnit;I)V 5 I
J
ticksPerWheel d java/util/concurrent/TimeUnit O MILLISECONDS Q G P R
threadFactory $Ljava/util/concurrent/ThreadFactory; I(Ljava/util/concurrent/ThreadFactory;JLjava/util/concurrent/TimeUnit;IZ)V 5 V
W 5 6
Y E(Lio/netty/util/HashedWheelTimer;Lio/netty/util/HashedWheelTimer$1;)V 5 [
\ ^ ( " ` #java/util/concurrent/CountDownLatch b (I)V 5 d
c e . / g (io/netty/util/internal/PlatformDependent i newMpscQueue ()Ljava/util/Queue; k l
j m 0 1 o 3 1 q java/lang/NullPointerException s T (Ljava/lang/String;)V 5 v
t w "java/util/concurrent/ThreadFactory y F "java/lang/IllegalArgumentException | java/lang/StringBuilder ~
Y %tickDuration must be greater than 0: ? append -(Ljava/lang/String;)Ljava/lang/StringBuilder; ? ?
? (J)Ljava/lang/StringBuilder; ? ?
? toString ()Ljava/lang/String; ? ?
?
} w &ticksPerWheel must be greater than 0: ? (I)Ljava/lang/StringBuilder; ? ?
? createWheel 6(I)[Lio/netty/util/HashedWheelTimer$HashedWheelBucket; ? ?
? + , ? - " ? toNanos (J)J ? ?
P ? ) * ???????? :tickDuration: %d (expected: 0 < tickDuration in nanos < %d ? java/lang/Long ? valueOf (J)Ljava/lang/Long; ? ?
? ? java/lang/String ? format 9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; ? ?
? ? newThread ((Ljava/lang/Runnable;)Ljava/lang/Thread; ? ? z ? ? java/lang/Thread ? isDaemon ()Z ? ?
? ? ? "io/netty/util/ResourceLeakDetector ? open 0(Ljava/lang/Object;)Lio/netty/util/ResourceLeak; ? ?
? ? io/netty/util/ResourceLeak ? ?
leakDetection Z@ ,ticksPerWheel may not be greater than 2^30: ? normalizeTicksPerWheel (I)I ? ?
? , %(Lio/netty/util/HashedWheelTimer$1;)V 5 ?
? i normalizedTicksPerWheel start java/lang/InterruptedException ? ? 5java/util/concurrent/atomic/AtomicIntegerFieldUpdater ? get (Ljava/lang/Object;)I ? ?
? ?
compareAndSet (Ljava/lang/Object;II)Z ? ?
? ? ? 6
? ? java/lang/IllegalStateException ? cannot be started once stopped ?
? w java/lang/Error ? Invalid WorkerState ?
? w 4 * ? await ? 6
c ? stop ()Ljava/util/Set;
currentThread ()Ljava/lang/Thread; ? ?
? ? java/lang/Class ?
getSimpleName ?
.stop() cannot be called from io/netty/util/TimerTask set (Ljava/lang/Object;I)V
?
close ? ?
java/util/Collections emptySet ?
isAlive ?
? interrupt 6
? join (J)V
? unprocessedTimeouts ?
ignored Ljava/lang/InterruptedException; interrupted
newTimeout R(Lio/netty/util/TimerTask;JLjava/util/concurrent/TimeUnit;)Lio/netty/util/Timeout; task&
? java/lang/System) nanoTime ()J+,
*- =(Lio/netty/util/HashedWheelTimer;Lio/netty/util/TimerTask;J)V 5/
0 java/util/Queue2 add (Ljava/lang/Object;)Z4536 Lio/netty/util/TimerTask; delay deadline timeout 3Lio/netty/util/HashedWheelTimer$HashedWheelTimeout;
access$202 $(Lio/netty/util/HashedWheelTimer;J)J x0 x1
access$200 #(Lio/netty/util/HashedWheelTimer;)J
access$300 G(Lio/netty/util/HashedWheelTimer;)Ljava/util/concurrent/CountDownLatch;
access$400 #(Lio/netty/util/HashedWheelTimer;)I
access$500 U(Lio/netty/util/HashedWheelTimer;)[Lio/netty/util/HashedWheelTimer$HashedWheelBucket;
access$600 9()Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
access$700 3(Lio/netty/util/HashedWheelTimer;)Ljava/util/Queue;
access$900 access$1000 4io/netty/util/internal/logging/InternalLoggerFactoryP getInstance B(Ljava/lang/Class;)Lio/netty/util/internal/logging/InternalLogger;RS
QT V )io/netty/util/ResourceLeakDetectorFactoryX instance -()Lio/netty/util/ResourceLeakDetectorFactory;Z[
Y\ java/lang/Runtime^
getRuntime ()Ljava/lang/Runtime;`a
_b availableProcessors ()Ide
_f newResourceLeakDetector 9(Ljava/lang/Class;IJ)Lio/netty/util/ResourceLeakDetector;jk
Yl ( newAtomicIntegerFieldUpdater \(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;op
jq
newUpdatersp
?t workerStateUpdater Signature
ConstantValue Code LocalVariableTable LineNumberTable
StackMapTable *()Ljava/util/Set; LocalVariableTypeTable
SourceFile InnerClasses ! w w ! " x # $ " x % &