final class io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable extends java.util.concurrent.atomic.AtomicInteger implements java.lang.Runnable, io.reactivex.disposables.Disposable
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable
super_class: java.util.concurrent.atomic.AtomicInteger
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -3603436687413320876
final java.lang.Runnable run;
descriptor: Ljava/lang/Runnable;
flags: (0x0010) ACC_FINAL
final io.reactivex.internal.disposables.DisposableContainer tasks;
descriptor: Lio/reactivex/internal/disposables/DisposableContainer;
flags: (0x0010) ACC_FINAL
volatile java.lang.Thread thread;
descriptor: Ljava/lang/Thread;
flags: (0x0040) ACC_VOLATILE
static final int READY;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
static final int RUNNING;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int FINISHED;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
static final int INTERRUPTING;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 3
static final int INTERRUPTED;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 4
void <init>(java.lang.Runnable, io.reactivex.internal.disposables.DisposableContainer);
descriptor: (Ljava/lang/Runnable;Lio/reactivex/internal/disposables/DisposableContainer;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
1: aload 0
aload 1
putfield io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.run:Ljava/lang/Runnable;
2: aload 0
aload 2
putfield io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.tasks:Lio/reactivex/internal/disposables/DisposableContainer;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;
0 4 1 run Ljava/lang/Runnable;
0 4 2 tasks Lio/reactivex/internal/disposables/DisposableContainer;
MethodParameters:
Name Flags
run
tasks
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.get:()I
ifne 23
1: aload 0
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
putfield io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.thread:Ljava/lang/Thread;
2: aload 0
iconst_0
iconst_1
invokevirtual io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.compareAndSet:(II)Z
ifeq 22
3: aload 0
getfield io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.run:Ljava/lang/Runnable;
invokeinterface java.lang.Runnable.run:()V
4: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 1
6: aload 0
aconst_null
putfield io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.thread:Ljava/lang/Thread;
7: aload 0
iconst_1
iconst_2
invokevirtual io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.compareAndSet:(II)Z
ifeq 11
8: aload 0
invokevirtual io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.cleanup:()V
9: goto 13
10: StackMap locals: java.lang.Throwable
StackMap stack:
invokestatic java.lang.Thread.yield:()V
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.get:()I
iconst_3
if_icmpeq 10
12: invokestatic java.lang.Thread.interrupted:()Z
pop
13: StackMap locals:
StackMap stack:
aload 1
athrow
14: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.thread:Ljava/lang/Thread;
15: aload 0
iconst_1
iconst_2
invokevirtual io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.compareAndSet:(II)Z
ifeq 19
16: aload 0
invokevirtual io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.cleanup:()V
17: goto 23
18: StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.yield:()V
19: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.get:()I
iconst_3
if_icmpeq 18
20: invokestatic java.lang.Thread.interrupted:()Z
pop
21: goto 23
22: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.thread:Ljava/lang/Thread;
23: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;
Exception table:
from to target type
3 5 5 any
public void dispose();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.get:()I
istore 1
start local 1 1: iload 1
iconst_2
if_icmplt 3
2: goto 14
3: StackMap locals: int
StackMap stack:
iload 1
ifne 7
4: aload 0
iconst_0
iconst_4
invokevirtual io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.compareAndSet:(II)Z
ifeq 0
5: aload 0
invokevirtual io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.cleanup:()V
6: goto 14
7: StackMap locals:
StackMap stack:
aload 0
iconst_1
iconst_3
invokevirtual io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.compareAndSet:(II)Z
ifeq 0
8: aload 0
getfield io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.thread:Ljava/lang/Thread;
astore 2
start local 2 9: aload 2
ifnull 12
10: aload 2
invokevirtual java.lang.Thread.interrupt:()V
11: aload 0
aconst_null
putfield io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.thread:Ljava/lang/Thread;
12: StackMap locals: java.lang.Thread
StackMap stack:
aload 0
iconst_4
invokevirtual io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.set:(I)V
13: aload 0
invokevirtual io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.cleanup:()V
end local 2 end local 1 14: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;
1 14 1 state I
9 14 2 t Ljava/lang/Thread;
void cleanup();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.tasks:Lio/reactivex/internal/disposables/DisposableContainer;
ifnull 2
1: aload 0
getfield io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.tasks:Lio/reactivex/internal/disposables/DisposableContainer;
aload 0
invokeinterface io.reactivex.internal.disposables.DisposableContainer.delete:(Lio/reactivex/disposables/Disposable;)Z
pop
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;
public boolean isDisposed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable.get:()I
iconst_2
if_icmplt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;
}
SourceFile: "ExecutorScheduler.java"
NestHost: io.reactivex.internal.schedulers.ExecutorScheduler
InnerClasses:
public final ExecutorWorker = io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker of io.reactivex.internal.schedulers.ExecutorScheduler
final InterruptibleRunnable = io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$InterruptibleRunnable of io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker