AsyncConsumerWithObjPool$1.smali
.class Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool$1;
.super Ljava/lang/Thread;
.source "AsyncConsumerWithObjPool.java"
# instance fields
.field final synthetic this$0:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;
# direct methods
.method constructor <init>(Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;)V
.registers 2
.prologue
.line 35
iput-object p1, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool$1;->this$0:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;
invoke-direct {p0}, Ljava/lang/Thread;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.registers 7
.prologue
.line 39
invoke-static {}, Lcom/cleanmaster/base/util/misc/KObjPoolMgr;->getInstance()Lcom/cleanmaster/base/util/misc/KObjPoolMgr;
move-result-object v0
iget-object v1, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool$1;->this$0:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;
# getter for: Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;->mCls:Ljava/lang/Class;
invoke-static {v1}, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;->access$000(Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;)Ljava/lang/Class;
move-result-object v1
iget-object v2, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool$1;->this$0:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;
# getter for: Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;->mPoolSize:I
invoke-static {v2}, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;->access$100(Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;)I
move-result v2
iget-object v3, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool$1;->this$0:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;
# getter for: Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;->mCreator:Lcom/cleanmaster/base/util/misc/KObjPoolMgr$IKPoolObjCreator;
invoke-static {v3}, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;->access$200(Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;)Lcom/cleanmaster/base/util/misc/KObjPoolMgr$IKPoolObjCreator;
move-result-object v3
invoke-virtual {v0, v1, v2, v3}, Lcom/cleanmaster/base/util/misc/KObjPoolMgr;->getObjPool(Ljava/lang/Class;ILcom/cleanmaster/base/util/misc/KObjPoolMgr$IKPoolObjCreator;)Lcom/cleanmaster/base/util/misc/KObjPoolMgr$KObjPool;
move-result-object v1
.line 44
:goto_1a
iget-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool$1;->this$0:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;
iget-object v2, v0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;->mProductQueue:Ljava/util/Queue;
monitor-enter v2
.line 45
:try_start_1f
iget-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool$1;->this$0:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;
iget-object v0, v0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;->mProductQueue:Ljava/util/Queue;
invoke-interface {v0}, Ljava/util/Queue;->isEmpty()Z
:try_end_26
.catchall {:try_start_1f .. :try_end_26} :catchall_4e
move-result v0
if-eqz v0, :cond_51
.line 47
:try_start_29
iget-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool$1;->this$0:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;
iget-object v0, v0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;->mProductQueue:Ljava/util/Queue;
iget-object v3, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool$1;->this$0:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;
iget v3, v3, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;->mWaitTime:I
int-to-long v4, v3
invoke-virtual {v0, v4, v5}, Ljava/lang/Object;->wait(J)V
.line 48
iget-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool$1;->this$0:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;
iget-object v0, v0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;->mProductQueue:Ljava/util/Queue;
invoke-interface {v0}, Ljava/util/Queue;->isEmpty()Z
move-result v0
if-eqz v0, :cond_51
.line 49
iget-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool$1;->this$0:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;
const/4 v1, 0x0
iput-object v1, v0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;->mConsumerThread:Ljava/lang/Thread;
:try_end_44
.catch Ljava/lang/InterruptedException; {:try_start_29 .. :try_end_44} :catch_46
.catchall {:try_start_29 .. :try_end_44} :catchall_4e
.line 50
:try_start_44
monitor-exit v2
.line 67
:goto_45
return-void
.line 52
:catch_46
move-exception v0
.line 53
iget-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool$1;->this$0:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;
const/4 v1, 0x0
iput-object v1, v0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;->mConsumerThread:Ljava/lang/Thread;
.line 54
monitor-exit v2
goto :goto_45
.line 59
:catchall_4e
move-exception v0
monitor-exit v2
:try_end_50
.catchall {:try_start_44 .. :try_end_50} :catchall_4e
throw v0
.line 58
:cond_51
:try_start_51
iget-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool$1;->this$0:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;
iget-object v0, v0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;->mProductQueue:Ljava/util/Queue;
invoke-interface {v0}, Ljava/util/Queue;->poll()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/cleanmaster/base/util/misc/KObjPoolMgr$KPoolObj;
.line 59
monitor-exit v2
:try_end_5c
.catchall {:try_start_51 .. :try_end_5c} :catchall_4e
.line 61
iget-object v2, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool$1;->this$0:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;
iget-object v2, v2, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;->mCallback:Lcom/cleanmaster/base/util/concurrent/AsyncConsumer$ConsumerCallback;
if-eqz v2, :cond_69
.line 62
iget-object v2, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool$1;->this$0:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;
iget-object v2, v2, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerWithObjPool;->mCallback:Lcom/cleanmaster/base/util/concurrent/AsyncConsumer$ConsumerCallback;
invoke-interface {v2, v0}, Lcom/cleanmaster/base/util/concurrent/AsyncConsumer$ConsumerCallback;->consumeProduct(Ljava/lang/Object;)V
.line 65
:cond_69
invoke-virtual {v1, v0}, Lcom/cleanmaster/base/util/misc/KObjPoolMgr$KObjPool;->recycleObj(Lcom/cleanmaster/base/util/misc/KObjPoolMgr$KPoolObj;)V
goto :goto_1a
.end method