JavaUrlRequest$SerializingExecutor.smali
.class final Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;
.super Ljava/lang/Object;
# interfaces
.implements Ljava/util/concurrent/Executor;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Laegon/chrome/net/impl/JavaUrlRequest;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1a
name = "SerializingExecutor"
.end annotation
# instance fields
.field private final mRunTasks:Ljava/lang/Runnable;
.field private mRunning:Z
.annotation build Ljavax/annotation/concurrent/GuardedBy;
value = "mTaskQueue"
.end annotation
.end field
.field private final mTaskQueue:Ljava/util/ArrayDeque;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayDeque",
"<",
"Ljava/lang/Runnable;",
">;"
}
.end annotation
.annotation build Ljavax/annotation/concurrent/GuardedBy;
value = "mTaskQueue"
.end annotation
.end field
.field private final mUnderlyingExecutor:Ljava/util/concurrent/Executor;
# direct methods
.method constructor <init>(Ljava/util/concurrent/Executor;)V
.registers 3
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor$1;
invoke-direct {v0, p0}, Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor$1;-><init>(Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;)V
iput-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;->mRunTasks:Ljava/lang/Runnable;
new-instance v0, Ljava/util/ArrayDeque;
invoke-direct {v0}, Ljava/util/ArrayDeque;-><init>()V
iput-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;->mTaskQueue:Ljava/util/ArrayDeque;
iput-object p1, p0, Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;->mUnderlyingExecutor:Ljava/util/concurrent/Executor;
return-void
.end method
.method static synthetic access$000(Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;)Ljava/util/ArrayDeque;
.registers 2
iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;->mTaskQueue:Ljava/util/ArrayDeque;
return-object v0
.end method
.method static synthetic access$100(Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;)Z
.registers 2
iget-boolean v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;->mRunning:Z
return v0
.end method
.method static synthetic access$102(Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;Z)Z
.registers 2
iput-boolean p1, p0, Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;->mRunning:Z
return p1
.end method
.method static synthetic access$200(Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;)Ljava/lang/Runnable;
.registers 2
iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;->mRunTasks:Ljava/lang/Runnable;
return-object v0
.end method
.method static synthetic access$300(Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;)Ljava/util/concurrent/Executor;
.registers 2
iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;->mUnderlyingExecutor:Ljava/util/concurrent/Executor;
return-object v0
.end method
# virtual methods
.method public execute(Ljava/lang/Runnable;)V
.registers 5
iget-object v1, p0, Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;->mTaskQueue:Ljava/util/ArrayDeque;
monitor-enter v1
:try_start_3
iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;->mTaskQueue:Ljava/util/ArrayDeque;
invoke-virtual {v0, p1}, Ljava/util/ArrayDeque;->addLast(Ljava/lang/Object;)V
:try_end_8
.catchall {:try_start_3 .. :try_end_8} :catchall_18
:try_start_8
iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;->mUnderlyingExecutor:Ljava/util/concurrent/Executor;
iget-object v2, p0, Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;->mRunTasks:Ljava/lang/Runnable;
invoke-interface {v0, v2}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V
:try_end_f
.catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_8 .. :try_end_f} :catch_11
.catchall {:try_start_8 .. :try_end_f} :catchall_18
:goto_f
:try_start_f
monitor-exit v1
return-void
:catch_11
move-exception v0
iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;->mTaskQueue:Ljava/util/ArrayDeque;
invoke-virtual {v0}, Ljava/util/ArrayDeque;->removeLast()Ljava/lang/Object;
goto :goto_f
:catchall_18
move-exception v0
monitor-exit v1
:try_end_1a
.catchall {:try_start_f .. :try_end_1a} :catchall_18
throw v0
.end method