class android.os.AsyncTask$SerialExecutor implements java.util.concurrent.Executor
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: android.os.AsyncTask$SerialExecutor
super_class: java.lang.Object
{
final java.util.ArrayDeque<java.lang.Runnable> mTasks;
descriptor: Ljava/util/ArrayDeque;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/ArrayDeque<Ljava/lang/Runnable;>;
java.lang.Runnable mActive;
descriptor: Ljava/lang/Runnable;
flags: (0x0000)
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
putfield android.os.AsyncTask$SerialExecutor.mTasks:Ljava/util/ArrayDeque;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/os/AsyncTask$SerialExecutor;
public synchronized void execute(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.os.AsyncTask$SerialExecutor.mTasks:Ljava/util/ArrayDeque;
new android.os.AsyncTask$SerialExecutor$1
dup
aload 0
aload 1
invokespecial android.os.AsyncTask$SerialExecutor$1.<init>:(Landroid/os/AsyncTask$SerialExecutor;Ljava/lang/Runnable;)V
invokevirtual java.util.ArrayDeque.offer:(Ljava/lang/Object;)Z
pop
1: aload 0
getfield android.os.AsyncTask$SerialExecutor.mActive:Ljava/lang/Runnable;
ifnonnull 3
2: aload 0
invokevirtual android.os.AsyncTask$SerialExecutor.scheduleNext:()V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/os/AsyncTask$SerialExecutor;
0 4 1 r Ljava/lang/Runnable;
MethodParameters:
Name Flags
r final
protected synchronized void scheduleNext();
descriptor: ()V
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield android.os.AsyncTask$SerialExecutor.mTasks:Ljava/util/ArrayDeque;
invokevirtual java.util.ArrayDeque.poll:()Ljava/lang/Object;
checkcast java.lang.Runnable
dup_x1
putfield android.os.AsyncTask$SerialExecutor.mActive:Ljava/lang/Runnable;
ifnull 2
1: getstatic android.os.AsyncTask.THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor;
aload 0
getfield android.os.AsyncTask$SerialExecutor.mActive:Ljava/lang/Runnable;
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/os/AsyncTask$SerialExecutor;
}
SourceFile: "AsyncTask.java"
NestHost: android.os.AsyncTask
InnerClasses:
private SerialExecutor = android.os.AsyncTask$SerialExecutor of android.os.AsyncTask
android.os.AsyncTask$SerialExecutor$1