Coordinator.smali
.class public Lorg/acdd/android/task/Coordinator;
.super Ljava/lang/Object;
.source "Coordinator.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/acdd/android/task/Coordinator$PostTask;,
Lorg/acdd/android/task/Coordinator$TaggedRunnable;,
Lorg/acdd/android/task/Coordinator$CoordinatorRejectHandler;
}
.end annotation
# static fields
.field private static final mExecutor:Ljava/util/concurrent/Executor;
.field private static final mPoolWorkQueue:Ljava/util/concurrent/BlockingQueue;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/BlockingQueue",
"<",
"Ljava/lang/Runnable;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 10
.prologue
.line 239
new-instance v0, Ljava/util/concurrent/LinkedBlockingQueue;
const/16 v1, 0x80
invoke-direct {v0, v1}, Ljava/util/concurrent/LinkedBlockingQueue;-><init>(I)V
sput-object v0, Lorg/acdd/android/task/Coordinator;->mPoolWorkQueue:Ljava/util/concurrent/BlockingQueue;
.line 240
new-instance v1, Ljava/util/concurrent/ThreadPoolExecutor;
const/16 v2, 0x8
const/16 v3, 0x10
const-wide/16 v4, 0x1
sget-object v6, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;
sget-object v7, Lorg/acdd/android/task/Coordinator;->mPoolWorkQueue:Ljava/util/concurrent/BlockingQueue;
new-instance v8, Lorg/acdd/android/task/Coordinator$1;
invoke-direct {v8}, Lorg/acdd/android/task/Coordinator$1;-><init>()V
new-instance v9, Lorg/acdd/android/task/Coordinator$CoordinatorRejectHandler;
const/4 v0, 0x0
invoke-direct {v9, v0}, Lorg/acdd/android/task/Coordinator$CoordinatorRejectHandler;-><init>(Lorg/acdd/android/task/Coordinator$1;)V
invoke-direct/range {v1 .. v9}, Ljava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V
.line 250
sput-object v1, Lorg/acdd/android/task/Coordinator;->mExecutor:Ljava/util/concurrent/Executor;
.line 251
invoke-static {v1}, Lorg/acdd/android/task/AsyncTaskExecutorInjector;->installAsDefaultAsyncTaskExecutor(Ljava/util/concurrent/ThreadPoolExecutor;)Z
.line 252
return-void
.end method
.method public constructor <init>()V
.registers 1
.prologue
.line 47
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method static synthetic access$000()Ljava/util/concurrent/BlockingQueue;
.registers 1
.prologue
.line 47
sget-object v0, Lorg/acdd/android/task/Coordinator;->mPoolWorkQueue:Ljava/util/concurrent/BlockingQueue;
return-object v0
.end method
.method static synthetic access$100(Lorg/acdd/android/task/Coordinator$TaggedRunnable;)V
.registers 1
.prologue
.line 47
invoke-static {p0}, Lorg/acdd/android/task/Coordinator;->runWithTiming(Lorg/acdd/android/task/Coordinator$TaggedRunnable;)V
return-void
.end method
.method public static postTask(Lorg/acdd/android/task/Coordinator$TaggedRunnable;)V
.registers 5
.annotation build Landroid/annotation/TargetApi;
value = 0xb
.end annotation
.prologue
const/4 v3, 0x0
.line 134
new-instance v0, Lorg/acdd/android/task/Coordinator$PostTask;
invoke-direct {v0, p0}, Lorg/acdd/android/task/Coordinator$PostTask;-><init>(Lorg/acdd/android/task/Coordinator$TaggedRunnable;)V
.line 135
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0xb
if-ge v1, v2, :cond_12
.line 136
new-array v1, v3, [Ljava/lang/Void;
invoke-virtual {v0, v1}, Lorg/acdd/android/task/Coordinator$PostTask;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask;
.line 140
:goto_11
return-void
.line 138
:cond_12
sget-object v1, Lorg/acdd/android/task/Coordinator;->mExecutor:Ljava/util/concurrent/Executor;
new-array v2, v3, [Ljava/lang/Void;
invoke-virtual {v0, v1, v2}, Lorg/acdd/android/task/Coordinator$PostTask;->executeOnExecutor(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/os/AsyncTask;
goto :goto_11
.end method
.method private static runWithTiming(Lorg/acdd/android/task/Coordinator$TaggedRunnable;)V
.registers 13
.prologue
const-wide/32 v10, 0xf4240
.line 186
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v2
.line 187
invoke-static {}, Landroid/os/Debug;->threadCpuTimeNanos()J
move-result-wide v4
.line 189
:try_start_b
invoke-virtual {p0}, Lorg/acdd/android/task/Coordinator$TaggedRunnable;->run()V
.line 190
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Timing - "
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 191
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v6
invoke-virtual {v6}, Ljava/lang/Thread;->getName()Ljava/lang/String;
move-result-object v6
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v6, " "
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget-object v6, p0, Lorg/acdd/android/task/Coordinator$TaggedRunnable;->tag:Ljava/lang/String;
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v6, ": "
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 193
invoke-static {}, Landroid/os/Debug;->threadCpuTimeNanos()J
move-result-wide v6
sub-long/2addr v6, v4
const-wide/32 v8, 0xf4240
div-long/2addr v6, v8
invoke-virtual {v1, v6, v7}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v1
const-string v6, "ms (cpu) / "
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 195
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v6
sub-long/2addr v6, v2
const-wide/32 v8, 0xf4240
div-long/2addr v6, v8
invoke-virtual {v1, v6, v7}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v1
const-string v6, "ms (real)"
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
.line 190
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
:try_end_66
.catch Ljava/lang/RuntimeException; {:try_start_b .. :try_end_66} :catch_67
.catch Ljava/lang/Throwable; {:try_start_b .. :try_end_66} :catch_d7
.line 217
:goto_66
return-void
.line 198
:catch_67
move-exception v0
.line 199
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Exception in "
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget-object v6, p0, Lorg/acdd/android/task/Coordinator$TaggedRunnable;->tag:Ljava/lang/String;
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
.line 200
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Timing - "
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 201
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v6
invoke-virtual {v6}, Ljava/lang/Thread;->getName()Ljava/lang/String;
move-result-object v6
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v6, " "
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget-object v6, p0, Lorg/acdd/android/task/Coordinator$TaggedRunnable;->tag:Ljava/lang/String;
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v6, " (failed): "
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 203
invoke-static {}, Landroid/os/Debug;->threadCpuTimeNanos()J
move-result-wide v6
sub-long v4, v6, v4
div-long/2addr v4, v10
invoke-virtual {v1, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v1
const-string v4, "ms (cpu) / "
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 205
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v4
sub-long v2, v4, v2
div-long/2addr v2, v10
invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "ms (real)"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
.line 200
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
goto :goto_66
.line 207
:catch_d7
move-exception v0
.line 208
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
.line 209
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Timing - "
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 210
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v6
invoke-virtual {v6}, Ljava/lang/Thread;->getName()Ljava/lang/String;
move-result-object v6
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v6, " "
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget-object v6, p0, Lorg/acdd/android/task/Coordinator$TaggedRunnable;->tag:Ljava/lang/String;
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v6, " (failed): "
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 212
invoke-static {}, Landroid/os/Debug;->threadCpuTimeNanos()J
move-result-wide v6
sub-long v4, v6, v4
div-long/2addr v4, v10
invoke-virtual {v1, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v1
const-string v4, "ms (cpu) / "
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 214
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v4
sub-long v2, v4, v2
div-long/2addr v2, v10
invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "ms (real)"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
.line 209
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
goto/16 :goto_66
.end method