e.smali
.class public Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/c/e;
.super Ljava/lang/Thread;
.source "Threading.java"
# interfaces
.implements Ljava/util/concurrent/Executor;
# static fields
.field private static WARNING_THRESHOLD:I
.field private static final log:Lorg/slf4j/Logger;
# instance fields
.field private tasks:Ljava/util/concurrent/LinkedBlockingQueue;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/LinkedBlockingQueue",
"<",
"Ljava/lang/Runnable;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 89
const-class v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/c/e;
invoke-static {v0}, Lorg/slf4j/LoggerFactory;->getLogger(Ljava/lang/Class;)Lorg/slf4j/Logger;
move-result-object v0
sput-object v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/c/e;->log:Lorg/slf4j/Logger;
.line 92
const/16 v0, 0x2710
sput v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/c/e;->WARNING_THRESHOLD:I
return-void
.end method
.method public constructor <init>()V
.registers 2
.prologue
.line 96
const-string v0, "bitcoinj user thread"
invoke-direct {p0, v0}, Ljava/lang/Thread;-><init>(Ljava/lang/String;)V
.line 97
const/4 v0, 0x1
invoke-virtual {p0, v0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/c/e;->setDaemon(Z)V
.line 98
new-instance v0, Ljava/util/concurrent/LinkedBlockingQueue;
invoke-direct {v0}, Ljava/util/concurrent/LinkedBlockingQueue;-><init>()V
iput-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/c/e;->tasks:Ljava/util/concurrent/LinkedBlockingQueue;
.line 99
invoke-virtual {p0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/c/e;->start()V
.line 100
return-void
.end method
# virtual methods
.method public execute(Ljava/lang/Runnable;)V
.registers 5
.prologue
.line 119
iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/c/e;->tasks:Ljava/util/concurrent/LinkedBlockingQueue;
invoke-virtual {v0}, Ljava/util/concurrent/LinkedBlockingQueue;->size()I
move-result v0
.line 120
sget v1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/c/e;->WARNING_THRESHOLD:I
if-ne v0, v1, :cond_15
.line 121
sget-object v1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/c/e;->log:Lorg/slf4j/Logger;
const-string v2, "User thread has {} pending tasks, memory exhaustion may occur.\nIf you see this message, check your memory consumption and see if it\'s problematic or excessively spikey.\nIf it is, check for deadlocked or slow event handlers. If it isn\'t, try adjusting the constant \nThreading.UserThread.WARNING_THRESHOLD upwards until it\'s a suitable level for your app, or Integer.MAX_VALUE to disable."
.line 125
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
.line 121
invoke-interface {v1, v2, v0}, Lorg/slf4j/Logger;->warn(Ljava/lang/String;Ljava/lang/Object;)V
.line 127
:cond_15
iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/c/e;->tasks:Ljava/util/concurrent/LinkedBlockingQueue;
invoke-static {v0, p1}, Lcom/google/common/util/concurrent/aq;->a(Ljava/util/concurrent/BlockingQueue;Ljava/lang/Object;)V
.line 128
return-void
.end method
.method public run()V
.registers 4
.prologue
.line 105
:goto_0
iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/c/e;->tasks:Ljava/util/concurrent/LinkedBlockingQueue;
invoke-static {v0}, Lcom/google/common/util/concurrent/aq;->a(Ljava/util/concurrent/BlockingQueue;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Runnable;
.line 107
:try_start_8
invoke-interface {v0}, Ljava/lang/Runnable;->run()V
:try_end_b
.catch Ljava/lang/Throwable; {:try_start_8 .. :try_end_b} :catch_c
goto :goto_0
.line 108
:catch_c
move-exception v0
.line 109
sget-object v1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/c/e;->log:Lorg/slf4j/Logger;
const-string v2, "Exception in user thread"
invoke-interface {v1, v2, v0}, Lorg/slf4j/Logger;->warn(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 110
sget-object v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/c/d;->uncaughtExceptionHandler:Ljava/lang/Thread$UncaughtExceptionHandler;
goto :goto_0
.end method