This commit is contained in:
2022-06-10 21:38:30 +09:00
commit 27f5152838
51323 changed files with 12934539 additions and 0 deletions
@@ -0,0 +1,247 @@
.class abstract Lio/reactivex/internal/schedulers/AbstractDirectTask;
.super Ljava/util/concurrent/atomic/AtomicReference;
.source "AbstractDirectTask.java"
# interfaces
.implements Lio/reactivex/disposables/b;
.implements Lli/a;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReference<",
"Ljava/util/concurrent/Future<",
"*>;>;",
"Lio/reactivex/disposables/b;",
"Lli/a;"
}
.end annotation
# static fields
.field public static final DISPOSED:Ljava/util/concurrent/FutureTask;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/FutureTask<",
"Ljava/lang/Void;",
">;"
}
.end annotation
.end field
.field public static final FINISHED:Ljava/util/concurrent/FutureTask;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/FutureTask<",
"Ljava/lang/Void;",
">;"
}
.end annotation
.end field
.field private static final serialVersionUID:J = 0x1924f211b909b42fL
# instance fields
.field public final runnable:Ljava/lang/Runnable;
.field public runner:Ljava/lang/Thread;
# direct methods
.method static constructor <clinit>()V
.locals 3
.line 1
new-instance v0, Ljava/util/concurrent/FutureTask;
sget-object v1, Lio/reactivex/internal/functions/Functions;->b:Ljava/lang/Runnable;
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Ljava/util/concurrent/FutureTask;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;)V
sput-object v0, Lio/reactivex/internal/schedulers/AbstractDirectTask;->FINISHED:Ljava/util/concurrent/FutureTask;
.line 2
new-instance v0, Ljava/util/concurrent/FutureTask;
invoke-direct {v0, v1, v2}, Ljava/util/concurrent/FutureTask;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;)V
sput-object v0, Lio/reactivex/internal/schedulers/AbstractDirectTask;->DISPOSED:Ljava/util/concurrent/FutureTask;
return-void
.end method
.method public constructor <init>(Ljava/lang/Runnable;)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
.line 2
iput-object p1, p0, Lio/reactivex/internal/schedulers/AbstractDirectTask;->runnable:Ljava/lang/Runnable;
return-void
.end method
# virtual methods
.method public final dispose()V
.locals 3
.line 1
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/concurrent/Future;
.line 2
sget-object v1, Lio/reactivex/internal/schedulers/AbstractDirectTask;->FINISHED:Ljava/util/concurrent/FutureTask;
if-eq v0, v1, :cond_1
sget-object v1, Lio/reactivex/internal/schedulers/AbstractDirectTask;->DISPOSED:Ljava/util/concurrent/FutureTask;
if-eq v0, v1, :cond_1
.line 3
invoke-virtual {p0, v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_1
if-eqz v0, :cond_1
.line 4
iget-object v1, p0, Lio/reactivex/internal/schedulers/AbstractDirectTask;->runner:Ljava/lang/Thread;
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v2
if-eq v1, v2, :cond_0
const/4 v1, 0x1
goto :goto_0
:cond_0
const/4 v1, 0x0
:goto_0
invoke-interface {v0, v1}, Ljava/util/concurrent/Future;->cancel(Z)Z
:cond_1
return-void
.end method
.method public getWrappedRunnable()Ljava/lang/Runnable;
.locals 1
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/AbstractDirectTask;->runnable:Ljava/lang/Runnable;
return-object v0
.end method
.method public final isDisposed()Z
.locals 2
.line 1
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/concurrent/Future;
.line 2
sget-object v1, Lio/reactivex/internal/schedulers/AbstractDirectTask;->FINISHED:Ljava/util/concurrent/FutureTask;
if-eq v0, v1, :cond_1
sget-object v1, Lio/reactivex/internal/schedulers/AbstractDirectTask;->DISPOSED:Ljava/util/concurrent/FutureTask;
if-ne v0, v1, :cond_0
goto :goto_0
:cond_0
const/4 v0, 0x0
goto :goto_1
:cond_1
:goto_0
const/4 v0, 0x1
:goto_1
return v0
.end method
.method public final setFuture(Ljava/util/concurrent/Future;)V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/concurrent/Future<",
"*>;)V"
}
.end annotation
.line 1
:cond_0
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/concurrent/Future;
.line 2
sget-object v1, Lio/reactivex/internal/schedulers/AbstractDirectTask;->FINISHED:Ljava/util/concurrent/FutureTask;
if-ne v0, v1, :cond_1
goto :goto_1
.line 3
:cond_1
sget-object v1, Lio/reactivex/internal/schedulers/AbstractDirectTask;->DISPOSED:Ljava/util/concurrent/FutureTask;
if-ne v0, v1, :cond_3
.line 4
iget-object v0, p0, Lio/reactivex/internal/schedulers/AbstractDirectTask;->runner:Ljava/lang/Thread;
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v1
if-eq v0, v1, :cond_2
const/4 v0, 0x1
goto :goto_0
:cond_2
const/4 v0, 0x0
:goto_0
invoke-interface {p1, v0}, Ljava/util/concurrent/Future;->cancel(Z)Z
goto :goto_1
.line 5
:cond_3
invoke-virtual {p0, v0, p1}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
:goto_1
return-void
.end method
@@ -0,0 +1,200 @@
.class final Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;
.super Ljava/util/concurrent/atomic/AtomicReference;
.source "ExecutorScheduler.java"
# interfaces
.implements Ljava/lang/Runnable;
.implements Lio/reactivex/disposables/b;
.implements Lli/a;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/ExecutorScheduler;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "DelayedRunnable"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReference<",
"Ljava/lang/Runnable;",
">;",
"Ljava/lang/Runnable;",
"Lio/reactivex/disposables/b;",
"Lli/a;"
}
.end annotation
# static fields
.field private static final serialVersionUID:J = -0x38eadf8da9d2b4ecL
# instance fields
.field public final direct:Lio/reactivex/internal/disposables/SequentialDisposable;
.field public final timed:Lio/reactivex/internal/disposables/SequentialDisposable;
# direct methods
.method public constructor <init>(Ljava/lang/Runnable;)V
.locals 0
.line 1
invoke-direct {p0, p1}, Ljava/util/concurrent/atomic/AtomicReference;-><init>(Ljava/lang/Object;)V
.line 2
new-instance p1, Lio/reactivex/internal/disposables/SequentialDisposable;
invoke-direct {p1}, Lio/reactivex/internal/disposables/SequentialDisposable;-><init>()V
iput-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;->timed:Lio/reactivex/internal/disposables/SequentialDisposable;
.line 3
new-instance p1, Lio/reactivex/internal/disposables/SequentialDisposable;
invoke-direct {p1}, Lio/reactivex/internal/disposables/SequentialDisposable;-><init>()V
iput-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;->direct:Lio/reactivex/internal/disposables/SequentialDisposable;
return-void
.end method
# virtual methods
.method public dispose()V
.locals 1
const/4 v0, 0x0
.line 1
invoke-virtual {p0, v0}, Ljava/util/concurrent/atomic/AtomicReference;->getAndSet(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
if-eqz v0, :cond_0
.line 2
iget-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;->timed:Lio/reactivex/internal/disposables/SequentialDisposable;
invoke-virtual {v0}, Lio/reactivex/internal/disposables/SequentialDisposable;->dispose()V
.line 3
iget-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;->direct:Lio/reactivex/internal/disposables/SequentialDisposable;
invoke-virtual {v0}, Lio/reactivex/internal/disposables/SequentialDisposable;->dispose()V
:cond_0
return-void
.end method
.method public getWrappedRunnable()Ljava/lang/Runnable;
.locals 1
.line 1
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Runnable;
if-eqz v0, :cond_0
goto :goto_0
.line 2
:cond_0
sget-object v0, Lio/reactivex/internal/functions/Functions;->b:Ljava/lang/Runnable;
:goto_0
return-object v0
.end method
.method public isDisposed()Z
.locals 1
.line 1
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
if-nez v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public run()V
.locals 3
.line 1
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Runnable;
if-eqz v0, :cond_0
const/4 v1, 0x0
.line 2
:try_start_0
invoke-interface {v0}, Ljava/lang/Runnable;->run()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 3
invoke-virtual {p0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V
.line 4
iget-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;->timed:Lio/reactivex/internal/disposables/SequentialDisposable;
sget-object v1, Lio/reactivex/internal/disposables/DisposableHelper;->DISPOSED:Lio/reactivex/internal/disposables/DisposableHelper;
invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V
.line 5
iget-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;->direct:Lio/reactivex/internal/disposables/SequentialDisposable;
invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V
goto :goto_0
:catchall_0
move-exception v0
.line 6
invoke-virtual {p0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V
.line 7
iget-object v1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;->timed:Lio/reactivex/internal/disposables/SequentialDisposable;
sget-object v2, Lio/reactivex/internal/disposables/DisposableHelper;->DISPOSED:Lio/reactivex/internal/disposables/DisposableHelper;
invoke-virtual {v1, v2}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V
.line 8
iget-object v1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;->direct:Lio/reactivex/internal/disposables/SequentialDisposable;
sget-object v2, Lio/reactivex/internal/disposables/DisposableHelper;->DISPOSED:Lio/reactivex/internal/disposables/DisposableHelper;
invoke-virtual {v1, v2}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V
throw v0
:cond_0
:goto_0
return-void
.end method
@@ -0,0 +1,100 @@
.class final Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$BooleanRunnable;
.super Ljava/util/concurrent/atomic/AtomicBoolean;
.source "ExecutorScheduler.java"
# interfaces
.implements Ljava/lang/Runnable;
.implements Lio/reactivex/disposables/b;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "BooleanRunnable"
.end annotation
# static fields
.field private static final serialVersionUID:J = -0x219a85f0c5b2daecL
# instance fields
.field public final actual:Ljava/lang/Runnable;
# direct methods
.method public constructor <init>(Ljava/lang/Runnable;)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/util/concurrent/atomic/AtomicBoolean;-><init>()V
.line 2
iput-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$BooleanRunnable;->actual:Ljava/lang/Runnable;
return-void
.end method
# virtual methods
.method public dispose()V
.locals 1
const/4 v0, 0x1
.line 1
invoke-virtual {p0, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->lazySet(Z)V
return-void
.end method
.method public isDisposed()Z
.locals 1
.line 1
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
move-result v0
return v0
.end method
.method public run()V
.locals 2
.line 1
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
move-result v0
if-eqz v0, :cond_0
return-void
:cond_0
const/4 v0, 0x1
.line 2
:try_start_0
iget-object v1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$BooleanRunnable;->actual:Ljava/lang/Runnable;
invoke-interface {v1}, Ljava/lang/Runnable;->run()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 3
invoke-virtual {p0, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->lazySet(Z)V
return-void
:catchall_0
move-exception v1
invoke-virtual {p0, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->lazySet(Z)V
throw v1
.end method
@@ -0,0 +1,293 @@
.class final Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;
.super Ljava/util/concurrent/atomic/AtomicInteger;
.source "ExecutorScheduler.java"
# interfaces
.implements Ljava/lang/Runnable;
.implements Lio/reactivex/disposables/b;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "InterruptibleRunnable"
.end annotation
# static fields
.field public static final FINISHED:I = 0x2
.field public static final INTERRUPTED:I = 0x4
.field public static final INTERRUPTING:I = 0x3
.field public static final READY:I = 0x0
.field public static final RUNNING:I = 0x1
.field private static final serialVersionUID:J = -0x3201fa934be19cacL
# instance fields
.field public final run:Ljava/lang/Runnable;
.field public final tasks:Lqh/a;
.field public volatile thread:Ljava/lang/Thread;
# direct methods
.method public constructor <init>(Ljava/lang/Runnable;Lqh/a;)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/util/concurrent/atomic/AtomicInteger;-><init>()V
.line 2
iput-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;->run:Ljava/lang/Runnable;
.line 3
iput-object p2, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;->tasks:Lqh/a;
return-void
.end method
# virtual methods
.method public cleanup()V
.locals 1
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;->tasks:Lqh/a;
if-eqz v0, :cond_0
.line 2
invoke-interface {v0, p0}, Lqh/a;->c(Lio/reactivex/disposables/b;)Z
:cond_0
return-void
.end method
.method public dispose()V
.locals 3
.line 1
:cond_0
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicInteger;->get()I
move-result v0
const/4 v1, 0x2
if-lt v0, v1, :cond_1
goto :goto_0
:cond_1
const/4 v1, 0x4
if-nez v0, :cond_2
const/4 v0, 0x0
.line 2
invoke-virtual {p0, v0, v1}, Ljava/util/concurrent/atomic/AtomicInteger;->compareAndSet(II)Z
move-result v0
if-eqz v0, :cond_0
.line 3
invoke-virtual {p0}, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;->cleanup()V
goto :goto_0
:cond_2
const/4 v0, 0x1
const/4 v2, 0x3
.line 4
invoke-virtual {p0, v0, v2}, Ljava/util/concurrent/atomic/AtomicInteger;->compareAndSet(II)Z
move-result v0
if-eqz v0, :cond_0
.line 5
iget-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;->thread:Ljava/lang/Thread;
if-eqz v0, :cond_3
.line 6
invoke-virtual {v0}, Ljava/lang/Thread;->interrupt()V
const/4 v0, 0x0
.line 7
iput-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;->thread:Ljava/lang/Thread;
.line 8
:cond_3
invoke-virtual {p0, v1}, Ljava/util/concurrent/atomic/AtomicInteger;->set(I)V
.line 9
invoke-virtual {p0}, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;->cleanup()V
:goto_0
return-void
.end method
.method public isDisposed()Z
.locals 2
.line 1
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicInteger;->get()I
move-result v0
const/4 v1, 0x2
if-lt v0, v1, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public run()V
.locals 5
.line 1
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicInteger;->get()I
move-result v0
if-nez v0, :cond_5
.line 2
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
iput-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;->thread:Ljava/lang/Thread;
const/4 v0, 0x0
const/4 v1, 0x1
.line 3
invoke-virtual {p0, v0, v1}, Ljava/util/concurrent/atomic/AtomicInteger;->compareAndSet(II)Z
move-result v0
const/4 v2, 0x0
if-eqz v0, :cond_4
const/4 v0, 0x3
const/4 v3, 0x2
.line 4
:try_start_0
iget-object v4, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;->run:Ljava/lang/Runnable;
invoke-interface {v4}, Ljava/lang/Runnable;->run()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 5
iput-object v2, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;->thread:Ljava/lang/Thread;
.line 6
invoke-virtual {p0, v1, v3}, Ljava/util/concurrent/atomic/AtomicInteger;->compareAndSet(II)Z
move-result v1
if-eqz v1, :cond_0
.line 7
invoke-virtual {p0}, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;->cleanup()V
goto :goto_3
.line 8
:cond_0
:goto_0
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicInteger;->get()I
move-result v1
if-ne v1, v0, :cond_1
.line 9
invoke-static {}, Ljava/lang/Thread;->yield()V
goto :goto_0
.line 10
:cond_1
invoke-static {}, Ljava/lang/Thread;->interrupted()Z
goto :goto_3
:catchall_0
move-exception v4
.line 11
iput-object v2, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;->thread:Ljava/lang/Thread;
.line 12
invoke-virtual {p0, v1, v3}, Ljava/util/concurrent/atomic/AtomicInteger;->compareAndSet(II)Z
move-result v1
if-nez v1, :cond_3
.line 13
:goto_1
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicInteger;->get()I
move-result v1
if-ne v1, v0, :cond_2
.line 14
invoke-static {}, Ljava/lang/Thread;->yield()V
goto :goto_1
.line 15
:cond_2
invoke-static {}, Ljava/lang/Thread;->interrupted()Z
goto :goto_2
.line 16
:cond_3
invoke-virtual {p0}, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;->cleanup()V
.line 17
:goto_2
throw v4
.line 18
:cond_4
iput-object v2, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;->thread:Ljava/lang/Thread;
:cond_5
:goto_3
return-void
.end method
@@ -0,0 +1,65 @@
.class public final Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$a;
.super Ljava/lang/Object;
.source "ExecutorScheduler.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "a"
.end annotation
# instance fields
.field public final a:Lio/reactivex/internal/disposables/SequentialDisposable;
.field public final b:Ljava/lang/Runnable;
.field public final synthetic c:Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;
# direct methods
.method public constructor <init>(Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;Lio/reactivex/internal/disposables/SequentialDisposable;Ljava/lang/Runnable;)V
.locals 0
.line 1
iput-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$a;->c:Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p2, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$a;->a:Lio/reactivex/internal/disposables/SequentialDisposable;
.line 3
iput-object p3, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$a;->b:Ljava/lang/Runnable;
return-void
.end method
# virtual methods
.method public run()V
.locals 3
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$a;->a:Lio/reactivex/internal/disposables/SequentialDisposable;
iget-object v1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$a;->c:Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;
iget-object v2, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$a;->b:Ljava/lang/Runnable;
invoke-virtual {v1, v2}, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->b(Ljava/lang/Runnable;)Lio/reactivex/disposables/b;
move-result-object v1
invoke-virtual {v0, v1}, Lio/reactivex/internal/disposables/SequentialDisposable;->replace(Lio/reactivex/disposables/b;)Z
return-void
.end method
@@ -0,0 +1,430 @@
.class public final Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;
.super Lkh/h0$c;
.source "ExecutorScheduler.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/ExecutorScheduler;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "ExecutorWorker"
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;,
Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$a;,
Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$BooleanRunnable;
}
.end annotation
# instance fields
.field public final a:Z
.field public final b:Ljava/util/concurrent/Executor;
.field public final c:Lio/reactivex/internal/queue/MpscLinkedQueue;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lio/reactivex/internal/queue/MpscLinkedQueue<",
"Ljava/lang/Runnable;",
">;"
}
.end annotation
.end field
.field public volatile d:Z
.field public final e:Ljava/util/concurrent/atomic/AtomicInteger;
.field public final f:Lio/reactivex/disposables/a;
# direct methods
.method public constructor <init>(Ljava/util/concurrent/Executor;Z)V
.locals 1
.line 1
invoke-direct {p0}, Lkh/h0$c;-><init>()V
.line 2
new-instance v0, Ljava/util/concurrent/atomic/AtomicInteger;
invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicInteger;-><init>()V
iput-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->e:Ljava/util/concurrent/atomic/AtomicInteger;
.line 3
new-instance v0, Lio/reactivex/disposables/a;
invoke-direct {v0}, Lio/reactivex/disposables/a;-><init>()V
iput-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->f:Lio/reactivex/disposables/a;
.line 4
iput-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->b:Ljava/util/concurrent/Executor;
.line 5
new-instance p1, Lio/reactivex/internal/queue/MpscLinkedQueue;
invoke-direct {p1}, Lio/reactivex/internal/queue/MpscLinkedQueue;-><init>()V
iput-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->c:Lio/reactivex/internal/queue/MpscLinkedQueue;
.line 6
iput-boolean p2, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->a:Z
return-void
.end method
# virtual methods
.method public b(Ljava/lang/Runnable;)Lio/reactivex/disposables/b;
.locals 2
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->d:Z
if-eqz v0, :cond_0
.line 2
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.line 3
:cond_0
invoke-static {p1}, Lwh/a;->b0(Ljava/lang/Runnable;)Ljava/lang/Runnable;
move-result-object p1
.line 4
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->a:Z
if-eqz v0, :cond_1
.line 5
new-instance v0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;
iget-object v1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->f:Lio/reactivex/disposables/a;
invoke-direct {v0, p1, v1}, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;-><init>(Ljava/lang/Runnable;Lqh/a;)V
.line 6
iget-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->f:Lio/reactivex/disposables/a;
invoke-virtual {p1, v0}, Lio/reactivex/disposables/a;->b(Lio/reactivex/disposables/b;)Z
goto :goto_0
.line 7
:cond_1
new-instance v0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$BooleanRunnable;
invoke-direct {v0, p1}, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$BooleanRunnable;-><init>(Ljava/lang/Runnable;)V
.line 8
:goto_0
iget-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->c:Lio/reactivex/internal/queue/MpscLinkedQueue;
invoke-virtual {p1, v0}, Lio/reactivex/internal/queue/MpscLinkedQueue;->offer(Ljava/lang/Object;)Z
.line 9
iget-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->e:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {p1}, Ljava/util/concurrent/atomic/AtomicInteger;->getAndIncrement()I
move-result p1
if-nez p1, :cond_2
.line 10
:try_start_0
iget-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->b:Ljava/util/concurrent/Executor;
invoke-interface {p1, p0}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V
:try_end_0
.catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_1
:catch_0
move-exception p1
const/4 v0, 0x1
.line 11
iput-boolean v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->d:Z
.line 12
iget-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->c:Lio/reactivex/internal/queue/MpscLinkedQueue;
invoke-virtual {v0}, Lio/reactivex/internal/queue/MpscLinkedQueue;->clear()V
.line 13
invoke-static {p1}, Lwh/a;->Y(Ljava/lang/Throwable;)V
.line 14
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
:cond_2
:goto_1
return-object v0
.end method
.method public c(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 4
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.param p4 # Ljava/util/concurrent/TimeUnit;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
const-wide/16 v0, 0x0
cmp-long v0, p2, v0
if-gtz v0, :cond_0
.line 1
invoke-virtual {p0, p1}, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->b(Ljava/lang/Runnable;)Lio/reactivex/disposables/b;
move-result-object p1
return-object p1
.line 2
:cond_0
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->d:Z
if-eqz v0, :cond_1
.line 3
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.line 4
:cond_1
new-instance v0, Lio/reactivex/internal/disposables/SequentialDisposable;
invoke-direct {v0}, Lio/reactivex/internal/disposables/SequentialDisposable;-><init>()V
.line 5
new-instance v1, Lio/reactivex/internal/disposables/SequentialDisposable;
invoke-direct {v1, v0}, Lio/reactivex/internal/disposables/SequentialDisposable;-><init>(Lio/reactivex/disposables/b;)V
.line 6
invoke-static {p1}, Lwh/a;->b0(Ljava/lang/Runnable;)Ljava/lang/Runnable;
move-result-object p1
.line 7
new-instance v2, Lio/reactivex/internal/schedulers/ScheduledRunnable;
new-instance v3, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$a;
invoke-direct {v3, p0, v1, p1}, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$a;-><init>(Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;Lio/reactivex/internal/disposables/SequentialDisposable;Ljava/lang/Runnable;)V
iget-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->f:Lio/reactivex/disposables/a;
invoke-direct {v2, v3, p1}, Lio/reactivex/internal/schedulers/ScheduledRunnable;-><init>(Ljava/lang/Runnable;Lqh/a;)V
.line 8
iget-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->f:Lio/reactivex/disposables/a;
invoke-virtual {p1, v2}, Lio/reactivex/disposables/a;->b(Lio/reactivex/disposables/b;)Z
.line 9
iget-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->b:Ljava/util/concurrent/Executor;
instance-of v3, p1, Ljava/util/concurrent/ScheduledExecutorService;
if-eqz v3, :cond_2
.line 10
:try_start_0
check-cast p1, Ljava/util/concurrent/ScheduledExecutorService;
invoke-interface {p1, v2, p2, p3, p4}, Ljava/util/concurrent/ScheduledExecutorService;->schedule(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
move-result-object p1
.line 11
invoke-virtual {v2, p1}, Lio/reactivex/internal/schedulers/ScheduledRunnable;->setFuture(Ljava/util/concurrent/Future;)V
:try_end_0
.catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception p1
const/4 p2, 0x1
.line 12
iput-boolean p2, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->d:Z
.line 13
invoke-static {p1}, Lwh/a;->Y(Ljava/lang/Throwable;)V
.line 14
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.line 15
:cond_2
sget-object p1, Lio/reactivex/internal/schedulers/ExecutorScheduler;->d:Lkh/h0;
invoke-virtual {p1, v2, p2, p3, p4}, Lkh/h0;->f(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
move-result-object p1
.line 16
new-instance p2, Lio/reactivex/internal/schedulers/b;
invoke-direct {p2, p1}, Lio/reactivex/internal/schedulers/b;-><init>(Lio/reactivex/disposables/b;)V
invoke-virtual {v2, p2}, Lio/reactivex/internal/schedulers/ScheduledRunnable;->setFuture(Ljava/util/concurrent/Future;)V
.line 17
:goto_0
invoke-virtual {v0, v2}, Lio/reactivex/internal/disposables/SequentialDisposable;->replace(Lio/reactivex/disposables/b;)Z
return-object v1
.end method
.method public dispose()V
.locals 1
.line 1
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->d:Z
if-nez v0, :cond_0
const/4 v0, 0x1
.line 2
iput-boolean v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->d:Z
.line 3
iget-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->f:Lio/reactivex/disposables/a;
invoke-virtual {v0}, Lio/reactivex/disposables/a;->dispose()V
.line 4
iget-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->e:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->getAndIncrement()I
move-result v0
if-nez v0, :cond_0
.line 5
iget-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->c:Lio/reactivex/internal/queue/MpscLinkedQueue;
invoke-virtual {v0}, Lio/reactivex/internal/queue/MpscLinkedQueue;->clear()V
:cond_0
return-void
.end method
.method public isDisposed()Z
.locals 1
.line 1
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->d:Z
return v0
.end method
.method public run()V
.locals 3
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->c:Lio/reactivex/internal/queue/MpscLinkedQueue;
const/4 v1, 0x1
.line 2
:cond_0
iget-boolean v2, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->d:Z
if-eqz v2, :cond_1
.line 3
invoke-virtual {v0}, Lio/reactivex/internal/queue/MpscLinkedQueue;->clear()V
return-void
.line 4
:cond_1
invoke-virtual {v0}, Lio/reactivex/internal/queue/MpscLinkedQueue;->poll()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/Runnable;
if-nez v2, :cond_3
.line 5
iget-boolean v2, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->d:Z
if-eqz v2, :cond_2
.line 6
invoke-virtual {v0}, Lio/reactivex/internal/queue/MpscLinkedQueue;->clear()V
return-void
.line 7
:cond_2
iget-object v2, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->e:Ljava/util/concurrent/atomic/AtomicInteger;
neg-int v1, v1
invoke-virtual {v2, v1}, Ljava/util/concurrent/atomic/AtomicInteger;->addAndGet(I)I
move-result v1
if-nez v1, :cond_0
return-void
.line 8
:cond_3
invoke-interface {v2}, Ljava/lang/Runnable;->run()V
.line 9
iget-boolean v2, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;->d:Z
if-eqz v2, :cond_1
.line 10
invoke-virtual {v0}, Lio/reactivex/internal/queue/MpscLinkedQueue;->clear()V
return-void
.end method
@@ -0,0 +1,60 @@
.class public final Lio/reactivex/internal/schedulers/ExecutorScheduler$a;
.super Ljava/lang/Object;
.source "ExecutorScheduler.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/ExecutorScheduler;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "a"
.end annotation
# instance fields
.field public final a:Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;
.field public final synthetic b:Lio/reactivex/internal/schedulers/ExecutorScheduler;
# direct methods
.method public constructor <init>(Lio/reactivex/internal/schedulers/ExecutorScheduler;Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;)V
.locals 0
.line 1
iput-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$a;->b:Lio/reactivex/internal/schedulers/ExecutorScheduler;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p2, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$a;->a:Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;
return-void
.end method
# virtual methods
.method public run()V
.locals 3
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$a;->a:Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;
iget-object v1, v0, Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;->direct:Lio/reactivex/internal/disposables/SequentialDisposable;
iget-object v2, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler$a;->b:Lio/reactivex/internal/schedulers/ExecutorScheduler;
invoke-virtual {v2, v0}, Lio/reactivex/internal/schedulers/ExecutorScheduler;->e(Ljava/lang/Runnable;)Lio/reactivex/disposables/b;
move-result-object v0
invoke-virtual {v1, v0}, Lio/reactivex/internal/disposables/SequentialDisposable;->replace(Lio/reactivex/disposables/b;)Z
return-void
.end method
@@ -0,0 +1,319 @@
.class public final Lio/reactivex/internal/schedulers/ExecutorScheduler;
.super Lkh/h0;
.source "ExecutorScheduler.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/reactivex/internal/schedulers/ExecutorScheduler$a;,
Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;,
Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;
}
.end annotation
# static fields
.field public static final d:Lkh/h0;
# instance fields
.field public final b:Z
.field public final c:Ljava/util/concurrent/Executor;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end field
# direct methods
.method public static constructor <clinit>()V
.locals 1
.line 1
invoke-static {}, Lli/b;->g()Lkh/h0;
move-result-object v0
sput-object v0, Lio/reactivex/internal/schedulers/ExecutorScheduler;->d:Lkh/h0;
return-void
.end method
.method public constructor <init>(Ljava/util/concurrent/Executor;Z)V
.locals 0
.param p1 # Ljava/util/concurrent/Executor;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.line 1
invoke-direct {p0}, Lkh/h0;-><init>()V
.line 2
iput-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler;->c:Ljava/util/concurrent/Executor;
.line 3
iput-boolean p2, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler;->b:Z
return-void
.end method
# virtual methods
.method public c()Lkh/h0$c;
.locals 3
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
new-instance v0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;
iget-object v1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler;->c:Ljava/util/concurrent/Executor;
iget-boolean v2, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler;->b:Z
invoke-direct {v0, v1, v2}, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker;-><init>(Ljava/util/concurrent/Executor;Z)V
return-object v0
.end method
.method public e(Ljava/lang/Runnable;)Lio/reactivex/disposables/b;
.locals 2
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
invoke-static {p1}, Lwh/a;->b0(Ljava/lang/Runnable;)Ljava/lang/Runnable;
move-result-object p1
.line 2
:try_start_0
iget-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler;->c:Ljava/util/concurrent/Executor;
instance-of v0, v0, Ljava/util/concurrent/ExecutorService;
if-eqz v0, :cond_0
.line 3
new-instance v0, Lio/reactivex/internal/schedulers/ScheduledDirectTask;
invoke-direct {v0, p1}, Lio/reactivex/internal/schedulers/ScheduledDirectTask;-><init>(Ljava/lang/Runnable;)V
.line 4
iget-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler;->c:Ljava/util/concurrent/Executor;
check-cast p1, Ljava/util/concurrent/ExecutorService;
invoke-interface {p1, v0}, Ljava/util/concurrent/ExecutorService;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
move-result-object p1
.line 5
invoke-virtual {v0, p1}, Lio/reactivex/internal/schedulers/AbstractDirectTask;->setFuture(Ljava/util/concurrent/Future;)V
return-object v0
.line 6
:cond_0
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler;->b:Z
if-eqz v0, :cond_1
.line 7
new-instance v0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;
const/4 v1, 0x0
invoke-direct {v0, p1, v1}, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$InterruptibleRunnable;-><init>(Ljava/lang/Runnable;Lqh/a;)V
.line 8
iget-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler;->c:Ljava/util/concurrent/Executor;
invoke-interface {p1, v0}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V
return-object v0
.line 9
:cond_1
new-instance v0, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$BooleanRunnable;
invoke-direct {v0, p1}, Lio/reactivex/internal/schedulers/ExecutorScheduler$ExecutorWorker$BooleanRunnable;-><init>(Ljava/lang/Runnable;)V
.line 10
iget-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler;->c:Ljava/util/concurrent/Executor;
invoke-interface {p1, v0}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V
:try_end_0
.catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_0 .. :try_end_0} :catch_0
return-object v0
:catch_0
move-exception p1
.line 11
invoke-static {p1}, Lwh/a;->Y(Ljava/lang/Throwable;)V
.line 12
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.end method
.method public f(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 2
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
invoke-static {p1}, Lwh/a;->b0(Ljava/lang/Runnable;)Ljava/lang/Runnable;
move-result-object p1
.line 2
iget-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler;->c:Ljava/util/concurrent/Executor;
instance-of v0, v0, Ljava/util/concurrent/ScheduledExecutorService;
if-eqz v0, :cond_0
.line 3
:try_start_0
new-instance v0, Lio/reactivex/internal/schedulers/ScheduledDirectTask;
invoke-direct {v0, p1}, Lio/reactivex/internal/schedulers/ScheduledDirectTask;-><init>(Ljava/lang/Runnable;)V
.line 4
iget-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler;->c:Ljava/util/concurrent/Executor;
check-cast p1, Ljava/util/concurrent/ScheduledExecutorService;
invoke-interface {p1, v0, p2, p3, p4}, Ljava/util/concurrent/ScheduledExecutorService;->schedule(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
move-result-object p1
.line 5
invoke-virtual {v0, p1}, Lio/reactivex/internal/schedulers/AbstractDirectTask;->setFuture(Ljava/util/concurrent/Future;)V
:try_end_0
.catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_0 .. :try_end_0} :catch_0
return-object v0
:catch_0
move-exception p1
.line 6
invoke-static {p1}, Lwh/a;->Y(Ljava/lang/Throwable;)V
.line 7
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.line 8
:cond_0
new-instance v0, Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;
invoke-direct {v0, p1}, Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;-><init>(Ljava/lang/Runnable;)V
.line 9
sget-object p1, Lio/reactivex/internal/schedulers/ExecutorScheduler;->d:Lkh/h0;
new-instance v1, Lio/reactivex/internal/schedulers/ExecutorScheduler$a;
invoke-direct {v1, p0, v0}, Lio/reactivex/internal/schedulers/ExecutorScheduler$a;-><init>(Lio/reactivex/internal/schedulers/ExecutorScheduler;Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;)V
invoke-virtual {p1, v1, p2, p3, p4}, Lkh/h0;->f(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
move-result-object p1
.line 10
iget-object p2, v0, Lio/reactivex/internal/schedulers/ExecutorScheduler$DelayedRunnable;->timed:Lio/reactivex/internal/disposables/SequentialDisposable;
invoke-virtual {p2, p1}, Lio/reactivex/internal/disposables/SequentialDisposable;->replace(Lio/reactivex/disposables/b;)Z
return-object v0
.end method
.method public g(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 8
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler;->c:Ljava/util/concurrent/Executor;
instance-of v0, v0, Ljava/util/concurrent/ScheduledExecutorService;
if-eqz v0, :cond_0
.line 2
invoke-static {p1}, Lwh/a;->b0(Ljava/lang/Runnable;)Ljava/lang/Runnable;
move-result-object p1
.line 3
:try_start_0
new-instance v7, Lio/reactivex/internal/schedulers/ScheduledDirectPeriodicTask;
invoke-direct {v7, p1}, Lio/reactivex/internal/schedulers/ScheduledDirectPeriodicTask;-><init>(Ljava/lang/Runnable;)V
.line 4
iget-object p1, p0, Lio/reactivex/internal/schedulers/ExecutorScheduler;->c:Ljava/util/concurrent/Executor;
move-object v0, p1
check-cast v0, Ljava/util/concurrent/ScheduledExecutorService;
move-object v1, v7
move-wide v2, p2
move-wide v4, p4
move-object v6, p6
invoke-interface/range {v0 .. v6}, Ljava/util/concurrent/ScheduledExecutorService;->scheduleAtFixedRate(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
move-result-object p1
.line 5
invoke-virtual {v7, p1}, Lio/reactivex/internal/schedulers/AbstractDirectTask;->setFuture(Ljava/util/concurrent/Future;)V
:try_end_0
.catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_0 .. :try_end_0} :catch_0
return-object v7
:catch_0
move-exception p1
.line 6
invoke-static {p1}, Lwh/a;->Y(Ljava/lang/Throwable;)V
.line 7
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.line 8
:cond_0
invoke-super/range {p0 .. p6}, Lkh/h0;->g(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,28 @@
.class public final Lio/reactivex/internal/schedulers/RxThreadFactory$a;
.super Ljava/lang/Thread;
.source "RxThreadFactory.java"
# interfaces
.implements Lio/reactivex/internal/schedulers/h;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/RxThreadFactory;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "a"
.end annotation
# direct methods
.method public constructor <init>(Ljava/lang/Runnable;Ljava/lang/String;)V
.locals 0
.line 1
invoke-direct {p0, p1, p2}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;Ljava/lang/String;)V
return-void
.end method
@@ -0,0 +1,148 @@
.class public final Lio/reactivex/internal/schedulers/RxThreadFactory;
.super Ljava/util/concurrent/atomic/AtomicLong;
.source "RxThreadFactory.java"
# interfaces
.implements Ljava/util/concurrent/ThreadFactory;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/reactivex/internal/schedulers/RxThreadFactory$a;
}
.end annotation
# static fields
.field private static final serialVersionUID:J = -0x6c1ac31a817da8a4L
# instance fields
.field public final nonBlocking:Z
.field public final prefix:Ljava/lang/String;
.field public final priority:I
# direct methods
.method public constructor <init>(Ljava/lang/String;)V
.locals 2
const/4 v0, 0x5
const/4 v1, 0x0
.line 1
invoke-direct {p0, p1, v0, v1}, Lio/reactivex/internal/schedulers/RxThreadFactory;-><init>(Ljava/lang/String;IZ)V
return-void
.end method
.method public constructor <init>(Ljava/lang/String;I)V
.locals 1
const/4 v0, 0x0
.line 2
invoke-direct {p0, p1, p2, v0}, Lio/reactivex/internal/schedulers/RxThreadFactory;-><init>(Ljava/lang/String;IZ)V
return-void
.end method
.method public constructor <init>(Ljava/lang/String;IZ)V
.locals 0
.line 3
invoke-direct {p0}, Ljava/util/concurrent/atomic/AtomicLong;-><init>()V
.line 4
iput-object p1, p0, Lio/reactivex/internal/schedulers/RxThreadFactory;->prefix:Ljava/lang/String;
.line 5
iput p2, p0, Lio/reactivex/internal/schedulers/RxThreadFactory;->priority:I
.line 6
iput-boolean p3, p0, Lio/reactivex/internal/schedulers/RxThreadFactory;->nonBlocking:Z
return-void
.end method
# virtual methods
.method public newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
.locals 3
.line 1
new-instance v0, Ljava/lang/StringBuilder;
iget-object v1, p0, Lio/reactivex/internal/schedulers/RxThreadFactory;->prefix:Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
const/16 v1, 0x2d
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicLong;->incrementAndGet()J
move-result-wide v1
invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
.line 2
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 3
iget-boolean v1, p0, Lio/reactivex/internal/schedulers/RxThreadFactory;->nonBlocking:Z
if-eqz v1, :cond_0
new-instance v1, Lio/reactivex/internal/schedulers/RxThreadFactory$a;
invoke-direct {v1, p1, v0}, Lio/reactivex/internal/schedulers/RxThreadFactory$a;-><init>(Ljava/lang/Runnable;Ljava/lang/String;)V
goto :goto_0
:cond_0
new-instance v1, Ljava/lang/Thread;
invoke-direct {v1, p1, v0}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;Ljava/lang/String;)V
.line 4
:goto_0
iget p1, p0, Lio/reactivex/internal/schedulers/RxThreadFactory;->priority:I
invoke-virtual {v1, p1}, Ljava/lang/Thread;->setPriority(I)V
const/4 p1, 0x1
.line 5
invoke-virtual {v1, p1}, Ljava/lang/Thread;->setDaemon(Z)V
return-object v1
.end method
.method public toString()Ljava/lang/String;
.locals 3
const-string v0, "RxThreadFactory["
.line 1
invoke-static {v0}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v1, p0, Lio/reactivex/internal/schedulers/RxThreadFactory;->prefix:Ljava/lang/String;
const-string v2, "]"
invoke-static {v0, v1, v2}, Landroidx/camera/camera2/internal/b;->a(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,77 @@
.class public final Lio/reactivex/internal/schedulers/ScheduledDirectPeriodicTask;
.super Lio/reactivex/internal/schedulers/AbstractDirectTask;
.source "ScheduledDirectPeriodicTask.java"
# interfaces
.implements Ljava/lang/Runnable;
# static fields
.field private static final serialVersionUID:J = 0x1924f211b909b42fL
# direct methods
.method public constructor <init>(Ljava/lang/Runnable;)V
.locals 0
.line 1
invoke-direct {p0, p1}, Lio/reactivex/internal/schedulers/AbstractDirectTask;-><init>(Ljava/lang/Runnable;)V
return-void
.end method
# virtual methods
.method public bridge synthetic getWrappedRunnable()Ljava/lang/Runnable;
.locals 1
.line 1
invoke-super {p0}, Lio/reactivex/internal/schedulers/AbstractDirectTask;->getWrappedRunnable()Ljava/lang/Runnable;
move-result-object v0
return-object v0
.end method
.method public run()V
.locals 2
.line 1
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
iput-object v0, p0, Lio/reactivex/internal/schedulers/AbstractDirectTask;->runner:Ljava/lang/Thread;
const/4 v0, 0x0
.line 2
:try_start_0
iget-object v1, p0, Lio/reactivex/internal/schedulers/AbstractDirectTask;->runnable:Ljava/lang/Runnable;
invoke-interface {v1}, Ljava/lang/Runnable;->run()V
.line 3
iput-object v0, p0, Lio/reactivex/internal/schedulers/AbstractDirectTask;->runner:Ljava/lang/Thread;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
goto :goto_0
:catchall_0
move-exception v1
.line 4
iput-object v0, p0, Lio/reactivex/internal/schedulers/AbstractDirectTask;->runner:Ljava/lang/Thread;
.line 5
sget-object v0, Lio/reactivex/internal/schedulers/AbstractDirectTask;->FINISHED:Ljava/util/concurrent/FutureTask;
invoke-virtual {p0, v0}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V
.line 6
invoke-static {v1}, Lwh/a;->Y(Ljava/lang/Throwable;)V
:goto_0
return-void
.end method
@@ -0,0 +1,110 @@
.class public final Lio/reactivex/internal/schedulers/ScheduledDirectTask;
.super Lio/reactivex/internal/schedulers/AbstractDirectTask;
.source "ScheduledDirectTask.java"
# interfaces
.implements Ljava/util/concurrent/Callable;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Lio/reactivex/internal/schedulers/AbstractDirectTask;",
"Ljava/util/concurrent/Callable<",
"Ljava/lang/Void;",
">;"
}
.end annotation
# static fields
.field private static final serialVersionUID:J = 0x1924f211b909b42fL
# direct methods
.method public constructor <init>(Ljava/lang/Runnable;)V
.locals 0
.line 1
invoke-direct {p0, p1}, Lio/reactivex/internal/schedulers/AbstractDirectTask;-><init>(Ljava/lang/Runnable;)V
return-void
.end method
# virtual methods
.method public bridge synthetic call()Ljava/lang/Object;
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.line 1
invoke-virtual {p0}, Lio/reactivex/internal/schedulers/ScheduledDirectTask;->call()Ljava/lang/Void;
move-result-object v0
return-object v0
.end method
.method public call()Ljava/lang/Void;
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.line 2
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
iput-object v0, p0, Lio/reactivex/internal/schedulers/AbstractDirectTask;->runner:Ljava/lang/Thread;
const/4 v0, 0x0
.line 3
:try_start_0
iget-object v1, p0, Lio/reactivex/internal/schedulers/AbstractDirectTask;->runnable:Ljava/lang/Runnable;
invoke-interface {v1}, Ljava/lang/Runnable;->run()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 4
sget-object v1, Lio/reactivex/internal/schedulers/AbstractDirectTask;->FINISHED:Ljava/util/concurrent/FutureTask;
invoke-virtual {p0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V
.line 5
iput-object v0, p0, Lio/reactivex/internal/schedulers/AbstractDirectTask;->runner:Ljava/lang/Thread;
return-object v0
:catchall_0
move-exception v1
.line 6
sget-object v2, Lio/reactivex/internal/schedulers/AbstractDirectTask;->FINISHED:Ljava/util/concurrent/FutureTask;
invoke-virtual {p0, v2}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V
.line 7
iput-object v0, p0, Lio/reactivex/internal/schedulers/AbstractDirectTask;->runner:Ljava/lang/Thread;
throw v1
.end method
.method public bridge synthetic getWrappedRunnable()Ljava/lang/Runnable;
.locals 1
.line 1
invoke-super {p0}, Lio/reactivex/internal/schedulers/AbstractDirectTask;->getWrappedRunnable()Ljava/lang/Runnable;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,460 @@
.class public final Lio/reactivex/internal/schedulers/ScheduledRunnable;
.super Ljava/util/concurrent/atomic/AtomicReferenceArray;
.source "ScheduledRunnable.java"
# interfaces
.implements Ljava/lang/Runnable;
.implements Ljava/util/concurrent/Callable;
.implements Lio/reactivex/disposables/b;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReferenceArray<",
"Ljava/lang/Object;",
">;",
"Ljava/lang/Runnable;",
"Ljava/util/concurrent/Callable<",
"Ljava/lang/Object;",
">;",
"Lio/reactivex/disposables/b;"
}
.end annotation
# static fields
.field public static final ASYNC_DISPOSED:Ljava/lang/Object;
.field public static final DONE:Ljava/lang/Object;
.field public static final FUTURE_INDEX:I = 0x1
.field public static final PARENT_DISPOSED:Ljava/lang/Object;
.field public static final PARENT_INDEX:I = 0x0
.field public static final SYNC_DISPOSED:Ljava/lang/Object;
.field public static final THREAD_INDEX:I = 0x2
.field private static final serialVersionUID:J = -0x54ef67182406fc25L
# instance fields
.field public final actual:Ljava/lang/Runnable;
# direct methods
.method public static constructor <clinit>()V
.locals 1
.line 1
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Lio/reactivex/internal/schedulers/ScheduledRunnable;->PARENT_DISPOSED:Ljava/lang/Object;
.line 2
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Lio/reactivex/internal/schedulers/ScheduledRunnable;->SYNC_DISPOSED:Ljava/lang/Object;
.line 3
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Lio/reactivex/internal/schedulers/ScheduledRunnable;->ASYNC_DISPOSED:Ljava/lang/Object;
.line 4
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Lio/reactivex/internal/schedulers/ScheduledRunnable;->DONE:Ljava/lang/Object;
return-void
.end method
.method public constructor <init>(Ljava/lang/Runnable;Lqh/a;)V
.locals 1
const/4 v0, 0x3
.line 1
invoke-direct {p0, v0}, Ljava/util/concurrent/atomic/AtomicReferenceArray;-><init>(I)V
.line 2
iput-object p1, p0, Lio/reactivex/internal/schedulers/ScheduledRunnable;->actual:Ljava/lang/Runnable;
const/4 p1, 0x0
.line 3
invoke-virtual {p0, p1, p2}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->lazySet(ILjava/lang/Object;)V
return-void
.end method
# virtual methods
.method public call()Ljava/lang/Object;
.locals 1
.line 1
invoke-virtual {p0}, Lio/reactivex/internal/schedulers/ScheduledRunnable;->run()V
const/4 v0, 0x0
return-object v0
.end method
.method public dispose()V
.locals 7
:cond_0
const/4 v0, 0x1
.line 1
invoke-virtual {p0, v0}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
move-result-object v1
.line 2
sget-object v2, Lio/reactivex/internal/schedulers/ScheduledRunnable;->DONE:Ljava/lang/Object;
const/4 v3, 0x0
if-eq v1, v2, :cond_4
sget-object v2, Lio/reactivex/internal/schedulers/ScheduledRunnable;->SYNC_DISPOSED:Ljava/lang/Object;
if-eq v1, v2, :cond_4
sget-object v4, Lio/reactivex/internal/schedulers/ScheduledRunnable;->ASYNC_DISPOSED:Ljava/lang/Object;
if-ne v1, v4, :cond_1
goto :goto_1
:cond_1
const/4 v5, 0x2
.line 3
invoke-virtual {p0, v5}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
move-result-object v5
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v6
if-eq v5, v6, :cond_2
move v5, v0
goto :goto_0
:cond_2
move v5, v3
:goto_0
if-eqz v5, :cond_3
move-object v2, v4
.line 4
:cond_3
invoke-virtual {p0, v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->compareAndSet(ILjava/lang/Object;Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
if-eqz v1, :cond_4
.line 5
check-cast v1, Ljava/util/concurrent/Future;
invoke-interface {v1, v5}, Ljava/util/concurrent/Future;->cancel(Z)Z
.line 6
:cond_4
:goto_1
invoke-virtual {p0, v3}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
move-result-object v0
.line 7
sget-object v1, Lio/reactivex/internal/schedulers/ScheduledRunnable;->DONE:Ljava/lang/Object;
if-eq v0, v1, :cond_6
sget-object v1, Lio/reactivex/internal/schedulers/ScheduledRunnable;->PARENT_DISPOSED:Ljava/lang/Object;
if-eq v0, v1, :cond_6
if-nez v0, :cond_5
goto :goto_2
.line 8
:cond_5
invoke-virtual {p0, v3, v0, v1}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->compareAndSet(ILjava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_4
.line 9
check-cast v0, Lqh/a;
invoke-interface {v0, p0}, Lqh/a;->c(Lio/reactivex/disposables/b;)Z
:cond_6
:goto_2
return-void
.end method
.method public isDisposed()Z
.locals 3
const/4 v0, 0x0
.line 1
invoke-virtual {p0, v0}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
move-result-object v1
.line 2
sget-object v2, Lio/reactivex/internal/schedulers/ScheduledRunnable;->PARENT_DISPOSED:Ljava/lang/Object;
if-eq v1, v2, :cond_0
sget-object v2, Lio/reactivex/internal/schedulers/ScheduledRunnable;->DONE:Ljava/lang/Object;
if-ne v1, v2, :cond_1
:cond_0
const/4 v0, 0x1
:cond_1
return v0
.end method
.method public run()V
.locals 5
.line 1
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
const/4 v1, 0x2
invoke-virtual {p0, v1, v0}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->lazySet(ILjava/lang/Object;)V
const/4 v0, 0x0
const/4 v2, 0x1
const/4 v3, 0x0
.line 2
:try_start_0
iget-object v4, p0, Lio/reactivex/internal/schedulers/ScheduledRunnable;->actual:Ljava/lang/Runnable;
invoke-interface {v4}, Ljava/lang/Runnable;->run()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
goto :goto_0
:catchall_0
move-exception v4
.line 3
:try_start_1
invoke-static {v4}, Lwh/a;->Y(Ljava/lang/Throwable;)V
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_1
.line 4
:goto_0
invoke-virtual {p0, v1, v0}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->lazySet(ILjava/lang/Object;)V
.line 5
invoke-virtual {p0, v3}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
move-result-object v0
.line 6
sget-object v1, Lio/reactivex/internal/schedulers/ScheduledRunnable;->PARENT_DISPOSED:Ljava/lang/Object;
if-eq v0, v1, :cond_0
sget-object v1, Lio/reactivex/internal/schedulers/ScheduledRunnable;->DONE:Ljava/lang/Object;
invoke-virtual {p0, v3, v0, v1}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->compareAndSet(ILjava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_0
if-eqz v0, :cond_0
.line 7
check-cast v0, Lqh/a;
invoke-interface {v0, p0}, Lqh/a;->c(Lio/reactivex/disposables/b;)Z
.line 8
:cond_0
invoke-virtual {p0, v2}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
move-result-object v0
.line 9
sget-object v1, Lio/reactivex/internal/schedulers/ScheduledRunnable;->SYNC_DISPOSED:Ljava/lang/Object;
if-eq v0, v1, :cond_1
sget-object v1, Lio/reactivex/internal/schedulers/ScheduledRunnable;->ASYNC_DISPOSED:Ljava/lang/Object;
if-eq v0, v1, :cond_1
sget-object v1, Lio/reactivex/internal/schedulers/ScheduledRunnable;->DONE:Ljava/lang/Object;
invoke-virtual {p0, v2, v0, v1}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->compareAndSet(ILjava/lang/Object;Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
:cond_1
return-void
:catchall_1
move-exception v4
.line 10
invoke-virtual {p0, v1, v0}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->lazySet(ILjava/lang/Object;)V
.line 11
invoke-virtual {p0, v3}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
move-result-object v0
.line 12
sget-object v1, Lio/reactivex/internal/schedulers/ScheduledRunnable;->PARENT_DISPOSED:Ljava/lang/Object;
if-eq v0, v1, :cond_2
sget-object v1, Lio/reactivex/internal/schedulers/ScheduledRunnable;->DONE:Ljava/lang/Object;
invoke-virtual {p0, v3, v0, v1}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->compareAndSet(ILjava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_2
if-eqz v0, :cond_2
.line 13
check-cast v0, Lqh/a;
invoke-interface {v0, p0}, Lqh/a;->c(Lio/reactivex/disposables/b;)Z
.line 14
:cond_2
:goto_1
invoke-virtual {p0, v2}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
move-result-object v0
.line 15
sget-object v1, Lio/reactivex/internal/schedulers/ScheduledRunnable;->SYNC_DISPOSED:Ljava/lang/Object;
if-eq v0, v1, :cond_3
sget-object v1, Lio/reactivex/internal/schedulers/ScheduledRunnable;->ASYNC_DISPOSED:Ljava/lang/Object;
if-eq v0, v1, :cond_3
sget-object v1, Lio/reactivex/internal/schedulers/ScheduledRunnable;->DONE:Ljava/lang/Object;
invoke-virtual {p0, v2, v0, v1}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->compareAndSet(ILjava/lang/Object;Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_3
goto :goto_1
.line 16
:cond_3
throw v4
.end method
.method public setFuture(Ljava/util/concurrent/Future;)V
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/concurrent/Future<",
"*>;)V"
}
.end annotation
:cond_0
const/4 v0, 0x1
.line 1
invoke-virtual {p0, v0}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
move-result-object v1
.line 2
sget-object v2, Lio/reactivex/internal/schedulers/ScheduledRunnable;->DONE:Ljava/lang/Object;
if-ne v1, v2, :cond_1
return-void
.line 3
:cond_1
sget-object v2, Lio/reactivex/internal/schedulers/ScheduledRunnable;->SYNC_DISPOSED:Ljava/lang/Object;
if-ne v1, v2, :cond_2
const/4 v0, 0x0
.line 4
invoke-interface {p1, v0}, Ljava/util/concurrent/Future;->cancel(Z)Z
return-void
.line 5
:cond_2
sget-object v2, Lio/reactivex/internal/schedulers/ScheduledRunnable;->ASYNC_DISPOSED:Ljava/lang/Object;
if-ne v1, v2, :cond_3
.line 6
invoke-interface {p1, v0}, Ljava/util/concurrent/Future;->cancel(Z)Z
return-void
.line 7
:cond_3
invoke-virtual {p0, v0, v1, p1}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->compareAndSet(ILjava/lang/Object;Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
return-void
.end method
@@ -0,0 +1,65 @@
.class Lio/reactivex/internal/schedulers/SchedulerWhen$DelayedAction;
.super Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;
.source "SchedulerWhen.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/SchedulerWhen;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "DelayedAction"
.end annotation
# instance fields
.field private final action:Ljava/lang/Runnable;
.field private final delayTime:J
.field private final unit:Ljava/util/concurrent/TimeUnit;
# direct methods
.method public constructor <init>(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)V
.locals 0
.line 1
invoke-direct {p0}, Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;-><init>()V
.line 2
iput-object p1, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$DelayedAction;->action:Ljava/lang/Runnable;
.line 3
iput-wide p2, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$DelayedAction;->delayTime:J
.line 4
iput-object p4, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$DelayedAction;->unit:Ljava/util/concurrent/TimeUnit;
return-void
.end method
# virtual methods
.method public callActual(Lkh/h0$c;Lkh/d;)Lio/reactivex/disposables/b;
.locals 3
.line 1
new-instance v0, Lio/reactivex/internal/schedulers/SchedulerWhen$b;
iget-object v1, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$DelayedAction;->action:Ljava/lang/Runnable;
invoke-direct {v0, v1, p2}, Lio/reactivex/internal/schedulers/SchedulerWhen$b;-><init>(Ljava/lang/Runnable;Lkh/d;)V
iget-wide v1, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$DelayedAction;->delayTime:J
iget-object p2, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$DelayedAction;->unit:Ljava/util/concurrent/TimeUnit;
invoke-virtual {p1, v0, v1, v2, p2}, Lkh/h0$c;->c(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,51 @@
.class Lio/reactivex/internal/schedulers/SchedulerWhen$ImmediateAction;
.super Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;
.source "SchedulerWhen.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/SchedulerWhen;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "ImmediateAction"
.end annotation
# instance fields
.field private final action:Ljava/lang/Runnable;
# direct methods
.method public constructor <init>(Ljava/lang/Runnable;)V
.locals 0
.line 1
invoke-direct {p0}, Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;-><init>()V
.line 2
iput-object p1, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$ImmediateAction;->action:Ljava/lang/Runnable;
return-void
.end method
# virtual methods
.method public callActual(Lkh/h0$c;Lkh/d;)Lio/reactivex/disposables/b;
.locals 2
.line 1
new-instance v0, Lio/reactivex/internal/schedulers/SchedulerWhen$b;
iget-object v1, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$ImmediateAction;->action:Ljava/lang/Runnable;
invoke-direct {v0, v1, p2}, Lio/reactivex/internal/schedulers/SchedulerWhen$b;-><init>(Ljava/lang/Runnable;Lkh/d;)V
invoke-virtual {p1, v0}, Lkh/h0$c;->b(Ljava/lang/Runnable;)Lio/reactivex/disposables/b;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,147 @@
.class abstract Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;
.super Ljava/util/concurrent/atomic/AtomicReference;
.source "SchedulerWhen.java"
# interfaces
.implements Lio/reactivex/disposables/b;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/SchedulerWhen;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x409
name = "ScheduledAction"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReference<",
"Lio/reactivex/disposables/b;",
">;",
"Lio/reactivex/disposables/b;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 1
.line 1
sget-object v0, Lio/reactivex/internal/schedulers/SchedulerWhen;->e:Lio/reactivex/disposables/b;
invoke-direct {p0, v0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>(Ljava/lang/Object;)V
return-void
.end method
# virtual methods
.method public call(Lkh/h0$c;Lkh/d;)V
.locals 2
.line 1
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lio/reactivex/disposables/b;
.line 2
sget-object v1, Lio/reactivex/internal/schedulers/SchedulerWhen;->f:Lio/reactivex/disposables/b;
if-ne v0, v1, :cond_0
return-void
.line 3
:cond_0
sget-object v1, Lio/reactivex/internal/schedulers/SchedulerWhen;->e:Lio/reactivex/disposables/b;
if-eq v0, v1, :cond_1
return-void
.line 4
:cond_1
invoke-virtual {p0, p1, p2}, Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;->callActual(Lkh/h0$c;Lkh/d;)Lio/reactivex/disposables/b;
move-result-object p1
.line 5
invoke-virtual {p0, v1, p1}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result p2
if-nez p2, :cond_2
.line 6
invoke-interface {p1}, Lio/reactivex/disposables/b;->dispose()V
:cond_2
return-void
.end method
.method public abstract callActual(Lkh/h0$c;Lkh/d;)Lio/reactivex/disposables/b;
.end method
.method public dispose()V
.locals 3
.line 1
sget-object v0, Lio/reactivex/internal/schedulers/SchedulerWhen;->f:Lio/reactivex/disposables/b;
.line 2
:cond_0
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lio/reactivex/disposables/b;
.line 3
sget-object v2, Lio/reactivex/internal/schedulers/SchedulerWhen;->f:Lio/reactivex/disposables/b;
if-ne v1, v2, :cond_1
return-void
.line 4
:cond_1
invoke-virtual {p0, v1, v0}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_0
.line 5
sget-object v0, Lio/reactivex/internal/schedulers/SchedulerWhen;->e:Lio/reactivex/disposables/b;
if-eq v1, v0, :cond_2
.line 6
invoke-interface {v1}, Lio/reactivex/disposables/b;->dispose()V
:cond_2
return-void
.end method
.method public isDisposed()Z
.locals 1
.line 1
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lio/reactivex/disposables/b;
invoke-interface {v0}, Lio/reactivex/disposables/b;->isDisposed()Z
move-result v0
return v0
.end method
@@ -0,0 +1,58 @@
.class public final Lio/reactivex/internal/schedulers/SchedulerWhen$a$a;
.super Lkh/a;
.source "SchedulerWhen.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/SchedulerWhen$a;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "a"
.end annotation
# instance fields
.field public final a:Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;
.field public final synthetic b:Lio/reactivex/internal/schedulers/SchedulerWhen$a;
# direct methods
.method public constructor <init>(Lio/reactivex/internal/schedulers/SchedulerWhen$a;Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;)V
.locals 0
.line 1
iput-object p1, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$a$a;->b:Lio/reactivex/internal/schedulers/SchedulerWhen$a;
invoke-direct {p0}, Lkh/a;-><init>()V
.line 2
iput-object p2, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$a$a;->a:Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;
return-void
.end method
# virtual methods
.method public I0(Lkh/d;)V
.locals 2
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$a$a;->a:Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;
invoke-interface {p1, v0}, Lkh/d;->onSubscribe(Lio/reactivex/disposables/b;)V
.line 2
iget-object v0, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$a$a;->a:Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;
iget-object v1, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$a$a;->b:Lio/reactivex/internal/schedulers/SchedulerWhen$a;
iget-object v1, v1, Lio/reactivex/internal/schedulers/SchedulerWhen$a;->a:Lkh/h0$c;
invoke-virtual {v0, v1, p1}, Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;->call(Lkh/h0$c;Lkh/d;)V
return-void
.end method
@@ -0,0 +1,82 @@
.class public final Lio/reactivex/internal/schedulers/SchedulerWhen$a;
.super Ljava/lang/Object;
.source "SchedulerWhen.java"
# interfaces
.implements Lph/o;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/SchedulerWhen;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "a"
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/reactivex/internal/schedulers/SchedulerWhen$a$a;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lph/o<",
"Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;",
"Lkh/a;",
">;"
}
.end annotation
# instance fields
.field public final a:Lkh/h0$c;
# direct methods
.method public constructor <init>(Lkh/h0$c;)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$a;->a:Lkh/h0$c;
return-void
.end method
# virtual methods
.method public a(Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;)Lkh/a;
.locals 1
.line 1
new-instance v0, Lio/reactivex/internal/schedulers/SchedulerWhen$a$a;
invoke-direct {v0, p0, p1}, Lio/reactivex/internal/schedulers/SchedulerWhen$a$a;-><init>(Lio/reactivex/internal/schedulers/SchedulerWhen$a;Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;)V
return-object v0
.end method
.method public bridge synthetic apply(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.line 1
check-cast p1, Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;
invoke-virtual {p0, p1}, Lio/reactivex/internal/schedulers/SchedulerWhen$a;->a(Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;)Lkh/a;
move-result-object p1
return-object p1
.end method
@@ -0,0 +1,70 @@
.class public Lio/reactivex/internal/schedulers/SchedulerWhen$b;
.super Ljava/lang/Object;
.source "SchedulerWhen.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/SchedulerWhen;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "b"
.end annotation
# instance fields
.field public final a:Lkh/d;
.field public final b:Ljava/lang/Runnable;
# direct methods
.method public constructor <init>(Ljava/lang/Runnable;Lkh/d;)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$b;->b:Ljava/lang/Runnable;
.line 3
iput-object p2, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$b;->a:Lkh/d;
return-void
.end method
# virtual methods
.method public run()V
.locals 2
.line 1
:try_start_0
iget-object v0, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$b;->b:Ljava/lang/Runnable;
invoke-interface {v0}, Ljava/lang/Runnable;->run()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 2
iget-object v0, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$b;->a:Lkh/d;
invoke-interface {v0}, Lkh/d;->onComplete()V
return-void
:catchall_0
move-exception v0
iget-object v1, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$b;->a:Lkh/d;
invoke-interface {v1}, Lkh/d;->onComplete()V
throw v0
.end method
@@ -0,0 +1,157 @@
.class public final Lio/reactivex/internal/schedulers/SchedulerWhen$c;
.super Lkh/h0$c;
.source "SchedulerWhen.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/SchedulerWhen;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "c"
.end annotation
# instance fields
.field public final a:Ljava/util/concurrent/atomic/AtomicBoolean;
.field public final b:Lio/reactivex/processors/a;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lio/reactivex/processors/a<",
"Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;",
">;"
}
.end annotation
.end field
.field public final c:Lkh/h0$c;
# direct methods
.method public constructor <init>(Lio/reactivex/processors/a;Lkh/h0$c;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lio/reactivex/processors/a<",
"Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;",
">;",
"Lkh/h0$c;",
")V"
}
.end annotation
.line 1
invoke-direct {p0}, Lkh/h0$c;-><init>()V
.line 2
iput-object p1, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$c;->b:Lio/reactivex/processors/a;
.line 3
iput-object p2, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$c;->c:Lkh/h0$c;
.line 4
new-instance p1, Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-direct {p1}, Ljava/util/concurrent/atomic/AtomicBoolean;-><init>()V
iput-object p1, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$c;->a:Ljava/util/concurrent/atomic/AtomicBoolean;
return-void
.end method
# virtual methods
.method public b(Ljava/lang/Runnable;)Lio/reactivex/disposables/b;
.locals 1
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
new-instance v0, Lio/reactivex/internal/schedulers/SchedulerWhen$ImmediateAction;
invoke-direct {v0, p1}, Lio/reactivex/internal/schedulers/SchedulerWhen$ImmediateAction;-><init>(Ljava/lang/Runnable;)V
.line 2
iget-object p1, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$c;->b:Lio/reactivex/processors/a;
invoke-interface {p1, v0}, Lok/d;->onNext(Ljava/lang/Object;)V
return-object v0
.end method
.method public c(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 1
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.param p4 # Ljava/util/concurrent/TimeUnit;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
new-instance v0, Lio/reactivex/internal/schedulers/SchedulerWhen$DelayedAction;
invoke-direct {v0, p1, p2, p3, p4}, Lio/reactivex/internal/schedulers/SchedulerWhen$DelayedAction;-><init>(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)V
.line 2
iget-object p1, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$c;->b:Lio/reactivex/processors/a;
invoke-interface {p1, v0}, Lok/d;->onNext(Ljava/lang/Object;)V
return-object v0
.end method
.method public dispose()V
.locals 3
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$c;->a:Ljava/util/concurrent/atomic/AtomicBoolean;
const/4 v1, 0x0
const/4 v2, 0x1
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z
move-result v0
if-eqz v0, :cond_0
.line 2
iget-object v0, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$c;->b:Lio/reactivex/processors/a;
invoke-interface {v0}, Lok/d;->onComplete()V
.line 3
iget-object v0, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$c;->c:Lkh/h0$c;
invoke-interface {v0}, Lio/reactivex/disposables/b;->dispose()V
:cond_0
return-void
.end method
.method public isDisposed()Z
.locals 1
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/SchedulerWhen$c;->a:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
move-result v0
return v0
.end method
@@ -0,0 +1,44 @@
.class public final Lio/reactivex/internal/schedulers/SchedulerWhen$d;
.super Ljava/lang/Object;
.source "SchedulerWhen.java"
# interfaces
.implements Lio/reactivex/disposables/b;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/SchedulerWhen;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "d"
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public dispose()V
.locals 0
return-void
.end method
.method public isDisposed()Z
.locals 1
const/4 v0, 0x0
return v0
.end method
@@ -0,0 +1,197 @@
.class public Lio/reactivex/internal/schedulers/SchedulerWhen;
.super Lkh/h0;
.source "SchedulerWhen.java"
# interfaces
.implements Lio/reactivex/disposables/b;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/reactivex/internal/schedulers/SchedulerWhen$d;,
Lio/reactivex/internal/schedulers/SchedulerWhen$c;,
Lio/reactivex/internal/schedulers/SchedulerWhen$a;,
Lio/reactivex/internal/schedulers/SchedulerWhen$b;,
Lio/reactivex/internal/schedulers/SchedulerWhen$DelayedAction;,
Lio/reactivex/internal/schedulers/SchedulerWhen$ImmediateAction;,
Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;
}
.end annotation
# static fields
.field public static final e:Lio/reactivex/disposables/b;
.field public static final f:Lio/reactivex/disposables/b;
# instance fields
.field public final b:Lkh/h0;
.field public final c:Lio/reactivex/processors/a;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lio/reactivex/processors/a<",
"Lkh/j<",
"Lkh/a;",
">;>;"
}
.end annotation
.end field
.field public d:Lio/reactivex/disposables/b;
# direct methods
.method public static constructor <clinit>()V
.locals 1
.line 1
new-instance v0, Lio/reactivex/internal/schedulers/SchedulerWhen$d;
invoke-direct {v0}, Lio/reactivex/internal/schedulers/SchedulerWhen$d;-><init>()V
sput-object v0, Lio/reactivex/internal/schedulers/SchedulerWhen;->e:Lio/reactivex/disposables/b;
.line 2
invoke-static {}, Lio/reactivex/disposables/c;->a()Lio/reactivex/disposables/b;
move-result-object v0
sput-object v0, Lio/reactivex/internal/schedulers/SchedulerWhen;->f:Lio/reactivex/disposables/b;
return-void
.end method
.method public constructor <init>(Lph/o;Lkh/h0;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lph/o<",
"Lkh/j<",
"Lkh/j<",
"Lkh/a;",
">;>;",
"Lkh/a;",
">;",
"Lkh/h0;",
")V"
}
.end annotation
.line 1
invoke-direct {p0}, Lkh/h0;-><init>()V
.line 2
iput-object p2, p0, Lio/reactivex/internal/schedulers/SchedulerWhen;->b:Lkh/h0;
.line 3
invoke-static {}, Lio/reactivex/processors/UnicastProcessor;->O8()Lio/reactivex/processors/UnicastProcessor;
move-result-object p2
invoke-virtual {p2}, Lio/reactivex/processors/a;->M8()Lio/reactivex/processors/a;
move-result-object p2
iput-object p2, p0, Lio/reactivex/internal/schedulers/SchedulerWhen;->c:Lio/reactivex/processors/a;
.line 4
:try_start_0
invoke-interface {p1, p2}, Lph/o;->apply(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Lkh/a;
invoke-virtual {p1}, Lkh/a;->F0()Lio/reactivex/disposables/b;
move-result-object p1
iput-object p1, p0, Lio/reactivex/internal/schedulers/SchedulerWhen;->d:Lio/reactivex/disposables/b;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
return-void
:catchall_0
move-exception p1
.line 5
invoke-static {p1}, Lio/reactivex/internal/util/ExceptionHelper;->f(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
move-result-object p1
throw p1
.end method
# virtual methods
.method public c()Lkh/h0$c;
.locals 4
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/SchedulerWhen;->b:Lkh/h0;
invoke-virtual {v0}, Lkh/h0;->c()Lkh/h0$c;
move-result-object v0
.line 2
invoke-static {}, Lio/reactivex/processors/UnicastProcessor;->O8()Lio/reactivex/processors/UnicastProcessor;
move-result-object v1
invoke-virtual {v1}, Lio/reactivex/processors/a;->M8()Lio/reactivex/processors/a;
move-result-object v1
.line 3
new-instance v2, Lio/reactivex/internal/schedulers/SchedulerWhen$a;
invoke-direct {v2, v0}, Lio/reactivex/internal/schedulers/SchedulerWhen$a;-><init>(Lkh/h0$c;)V
invoke-virtual {v1, v2}, Lkh/j;->G3(Lph/o;)Lkh/j;
move-result-object v2
.line 4
new-instance v3, Lio/reactivex/internal/schedulers/SchedulerWhen$c;
invoke-direct {v3, v1, v0}, Lio/reactivex/internal/schedulers/SchedulerWhen$c;-><init>(Lio/reactivex/processors/a;Lkh/h0$c;)V
.line 5
iget-object v0, p0, Lio/reactivex/internal/schedulers/SchedulerWhen;->c:Lio/reactivex/processors/a;
invoke-interface {v0, v2}, Lok/d;->onNext(Ljava/lang/Object;)V
return-object v3
.end method
.method public dispose()V
.locals 1
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/SchedulerWhen;->d:Lio/reactivex/disposables/b;
invoke-interface {v0}, Lio/reactivex/disposables/b;->dispose()V
return-void
.end method
.method public isDisposed()Z
.locals 1
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/SchedulerWhen;->d:Lio/reactivex/disposables/b;
invoke-interface {v0}, Lio/reactivex/disposables/b;->isDisposed()Z
move-result v0
return v0
.end method
@@ -0,0 +1,180 @@
.class public final Lio/reactivex/internal/schedulers/a$a;
.super Lkh/h0$c;
.source "ComputationScheduler.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/a;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "a"
.end annotation
# instance fields
.field public final a:Lqh/b;
.field public final b:Lio/reactivex/disposables/a;
.field public final c:Lqh/b;
.field public final d:Lio/reactivex/internal/schedulers/a$c;
.field public volatile e:Z
# direct methods
.method public constructor <init>(Lio/reactivex/internal/schedulers/a$c;)V
.locals 2
.line 1
invoke-direct {p0}, Lkh/h0$c;-><init>()V
.line 2
iput-object p1, p0, Lio/reactivex/internal/schedulers/a$a;->d:Lio/reactivex/internal/schedulers/a$c;
.line 3
new-instance p1, Lqh/b;
invoke-direct {p1}, Lqh/b;-><init>()V
iput-object p1, p0, Lio/reactivex/internal/schedulers/a$a;->a:Lqh/b;
.line 4
new-instance v0, Lio/reactivex/disposables/a;
invoke-direct {v0}, Lio/reactivex/disposables/a;-><init>()V
iput-object v0, p0, Lio/reactivex/internal/schedulers/a$a;->b:Lio/reactivex/disposables/a;
.line 5
new-instance v1, Lqh/b;
invoke-direct {v1}, Lqh/b;-><init>()V
iput-object v1, p0, Lio/reactivex/internal/schedulers/a$a;->c:Lqh/b;
.line 6
invoke-virtual {v1, p1}, Lqh/b;->b(Lio/reactivex/disposables/b;)Z
.line 7
invoke-virtual {v1, v0}, Lqh/b;->b(Lio/reactivex/disposables/b;)Z
return-void
.end method
# virtual methods
.method public b(Ljava/lang/Runnable;)Lio/reactivex/disposables/b;
.locals 6
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/a$a;->e:Z
if-eqz v0, :cond_0
.line 2
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.line 3
:cond_0
iget-object v0, p0, Lio/reactivex/internal/schedulers/a$a;->d:Lio/reactivex/internal/schedulers/a$c;
const-wide/16 v2, 0x0
sget-object v4, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
iget-object v5, p0, Lio/reactivex/internal/schedulers/a$a;->a:Lqh/b;
move-object v1, p1
invoke-virtual/range {v0 .. v5}, Lio/reactivex/internal/schedulers/g;->e(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;Lqh/a;)Lio/reactivex/internal/schedulers/ScheduledRunnable;
move-result-object p1
return-object p1
.end method
.method public c(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 6
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.param p4 # Ljava/util/concurrent/TimeUnit;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/a$a;->e:Z
if-eqz v0, :cond_0
.line 2
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.line 3
:cond_0
iget-object v0, p0, Lio/reactivex/internal/schedulers/a$a;->d:Lio/reactivex/internal/schedulers/a$c;
iget-object v5, p0, Lio/reactivex/internal/schedulers/a$a;->b:Lio/reactivex/disposables/a;
move-object v1, p1
move-wide v2, p2
move-object v4, p4
invoke-virtual/range {v0 .. v5}, Lio/reactivex/internal/schedulers/g;->e(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;Lqh/a;)Lio/reactivex/internal/schedulers/ScheduledRunnable;
move-result-object p1
return-object p1
.end method
.method public dispose()V
.locals 1
.line 1
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/a$a;->e:Z
if-nez v0, :cond_0
const/4 v0, 0x1
.line 2
iput-boolean v0, p0, Lio/reactivex/internal/schedulers/a$a;->e:Z
.line 3
iget-object v0, p0, Lio/reactivex/internal/schedulers/a$a;->c:Lqh/b;
invoke-virtual {v0}, Lqh/b;->dispose()V
:cond_0
return-void
.end method
.method public isDisposed()Z
.locals 1
.line 1
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/a$a;->e:Z
return v0
.end method
@@ -0,0 +1,194 @@
.class public final Lio/reactivex/internal/schedulers/a$b;
.super Ljava/lang/Object;
.source "ComputationScheduler.java"
# interfaces
.implements Lio/reactivex/internal/schedulers/i;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/a;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "b"
.end annotation
# instance fields
.field public final a:I
.field public final b:[Lio/reactivex/internal/schedulers/a$c;
.field public c:J
# direct methods
.method public constructor <init>(ILjava/util/concurrent/ThreadFactory;)V
.locals 3
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput p1, p0, Lio/reactivex/internal/schedulers/a$b;->a:I
.line 3
new-array v0, p1, [Lio/reactivex/internal/schedulers/a$c;
iput-object v0, p0, Lio/reactivex/internal/schedulers/a$b;->b:[Lio/reactivex/internal/schedulers/a$c;
const/4 v0, 0x0
:goto_0
if-ge v0, p1, :cond_0
.line 4
iget-object v1, p0, Lio/reactivex/internal/schedulers/a$b;->b:[Lio/reactivex/internal/schedulers/a$c;
new-instance v2, Lio/reactivex/internal/schedulers/a$c;
invoke-direct {v2, p2}, Lio/reactivex/internal/schedulers/a$c;-><init>(Ljava/util/concurrent/ThreadFactory;)V
aput-object v2, v1, v0
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_0
return-void
.end method
# virtual methods
.method public a(ILio/reactivex/internal/schedulers/i$a;)V
.locals 6
.line 1
iget v0, p0, Lio/reactivex/internal/schedulers/a$b;->a:I
const/4 v1, 0x0
if-nez v0, :cond_0
:goto_0
if-ge v1, p1, :cond_3
.line 2
sget-object v0, Lio/reactivex/internal/schedulers/a;->i:Lio/reactivex/internal/schedulers/a$c;
invoke-interface {p2, v1, v0}, Lio/reactivex/internal/schedulers/i$a;->a(ILkh/h0$c;)V
add-int/lit8 v1, v1, 0x1
goto :goto_0
.line 3
:cond_0
iget-wide v2, p0, Lio/reactivex/internal/schedulers/a$b;->c:J
long-to-int v2, v2
rem-int/2addr v2, v0
move v3, v1
:goto_1
if-ge v3, p1, :cond_2
.line 4
new-instance v4, Lio/reactivex/internal/schedulers/a$a;
iget-object v5, p0, Lio/reactivex/internal/schedulers/a$b;->b:[Lio/reactivex/internal/schedulers/a$c;
aget-object v5, v5, v2
invoke-direct {v4, v5}, Lio/reactivex/internal/schedulers/a$a;-><init>(Lio/reactivex/internal/schedulers/a$c;)V
invoke-interface {p2, v3, v4}, Lio/reactivex/internal/schedulers/i$a;->a(ILkh/h0$c;)V
add-int/lit8 v2, v2, 0x1
if-ne v2, v0, :cond_1
move v2, v1
:cond_1
add-int/lit8 v3, v3, 0x1
goto :goto_1
:cond_2
int-to-long p1, v2
.line 5
iput-wide p1, p0, Lio/reactivex/internal/schedulers/a$b;->c:J
:cond_3
return-void
.end method
.method public b()Lio/reactivex/internal/schedulers/a$c;
.locals 6
.line 1
iget v0, p0, Lio/reactivex/internal/schedulers/a$b;->a:I
if-nez v0, :cond_0
.line 2
sget-object v0, Lio/reactivex/internal/schedulers/a;->i:Lio/reactivex/internal/schedulers/a$c;
return-object v0
.line 3
:cond_0
iget-object v1, p0, Lio/reactivex/internal/schedulers/a$b;->b:[Lio/reactivex/internal/schedulers/a$c;
iget-wide v2, p0, Lio/reactivex/internal/schedulers/a$b;->c:J
const-wide/16 v4, 0x1
add-long/2addr v4, v2
iput-wide v4, p0, Lio/reactivex/internal/schedulers/a$b;->c:J
int-to-long v4, v0
rem-long/2addr v2, v4
long-to-int v0, v2
aget-object v0, v1, v0
return-object v0
.end method
.method public c()V
.locals 4
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/a$b;->b:[Lio/reactivex/internal/schedulers/a$c;
array-length v1, v0
const/4 v2, 0x0
:goto_0
if-ge v2, v1, :cond_0
aget-object v3, v0, v2
.line 2
invoke-virtual {v3}, Lio/reactivex/internal/schedulers/g;->dispose()V
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_0
return-void
.end method
@@ -0,0 +1,25 @@
.class public final Lio/reactivex/internal/schedulers/a$c;
.super Lio/reactivex/internal/schedulers/g;
.source "ComputationScheduler.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/a;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "c"
.end annotation
# direct methods
.method public constructor <init>(Ljava/util/concurrent/ThreadFactory;)V
.locals 0
.line 1
invoke-direct {p0, p1}, Lio/reactivex/internal/schedulers/g;-><init>(Ljava/util/concurrent/ThreadFactory;)V
return-void
.end method
@@ -0,0 +1,377 @@
.class public final Lio/reactivex/internal/schedulers/a;
.super Lkh/h0;
.source "ComputationScheduler.java"
# interfaces
.implements Lio/reactivex/internal/schedulers/i;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/reactivex/internal/schedulers/a$c;,
Lio/reactivex/internal/schedulers/a$a;,
Lio/reactivex/internal/schedulers/a$b;
}
.end annotation
# static fields
.field public static final d:Lio/reactivex/internal/schedulers/a$b;
.field public static final e:Ljava/lang/String; = "RxComputationThreadPool"
.field public static final f:Lio/reactivex/internal/schedulers/RxThreadFactory;
.field public static final g:Ljava/lang/String; = "rx2.computation-threads"
.field public static final h:I
.field public static final i:Lio/reactivex/internal/schedulers/a$c;
.field public static final j:Ljava/lang/String; = "rx2.computation-priority"
# instance fields
.field public final b:Ljava/util/concurrent/ThreadFactory;
.field public final c:Ljava/util/concurrent/atomic/AtomicReference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReference<",
"Lio/reactivex/internal/schedulers/a$b;",
">;"
}
.end annotation
.end field
# direct methods
.method public static constructor <clinit>()V
.locals 5
.line 1
invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Runtime;->availableProcessors()I
move-result v0
const-string v1, "rx2.computation-threads"
const/4 v2, 0x0
invoke-static {v1, v2}, Ljava/lang/Integer;->getInteger(Ljava/lang/String;I)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v1
invoke-static {v0, v1}, Lio/reactivex/internal/schedulers/a;->k(II)I
move-result v0
sput v0, Lio/reactivex/internal/schedulers/a;->h:I
.line 2
new-instance v0, Lio/reactivex/internal/schedulers/a$c;
new-instance v1, Lio/reactivex/internal/schedulers/RxThreadFactory;
const-string v3, "RxComputationShutdown"
invoke-direct {v1, v3}, Lio/reactivex/internal/schedulers/RxThreadFactory;-><init>(Ljava/lang/String;)V
invoke-direct {v0, v1}, Lio/reactivex/internal/schedulers/a$c;-><init>(Ljava/util/concurrent/ThreadFactory;)V
sput-object v0, Lio/reactivex/internal/schedulers/a;->i:Lio/reactivex/internal/schedulers/a$c;
.line 3
invoke-virtual {v0}, Lio/reactivex/internal/schedulers/g;->dispose()V
const-string v0, "rx2.computation-priority"
const/4 v1, 0x5
.line 4
invoke-static {v0, v1}, Ljava/lang/Integer;->getInteger(Ljava/lang/String;I)Ljava/lang/Integer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
const/16 v1, 0xa
.line 5
invoke-static {v1, v0}, Ljava/lang/Math;->min(II)I
move-result v0
const/4 v1, 0x1
invoke-static {v1, v0}, Ljava/lang/Math;->max(II)I
move-result v0
.line 6
new-instance v3, Lio/reactivex/internal/schedulers/RxThreadFactory;
const-string v4, "RxComputationThreadPool"
invoke-direct {v3, v4, v0, v1}, Lio/reactivex/internal/schedulers/RxThreadFactory;-><init>(Ljava/lang/String;IZ)V
sput-object v3, Lio/reactivex/internal/schedulers/a;->f:Lio/reactivex/internal/schedulers/RxThreadFactory;
.line 7
new-instance v0, Lio/reactivex/internal/schedulers/a$b;
invoke-direct {v0, v2, v3}, Lio/reactivex/internal/schedulers/a$b;-><init>(ILjava/util/concurrent/ThreadFactory;)V
sput-object v0, Lio/reactivex/internal/schedulers/a;->d:Lio/reactivex/internal/schedulers/a$b;
.line 8
invoke-virtual {v0}, Lio/reactivex/internal/schedulers/a$b;->c()V
return-void
.end method
.method public constructor <init>()V
.locals 1
.line 1
sget-object v0, Lio/reactivex/internal/schedulers/a;->f:Lio/reactivex/internal/schedulers/RxThreadFactory;
invoke-direct {p0, v0}, Lio/reactivex/internal/schedulers/a;-><init>(Ljava/util/concurrent/ThreadFactory;)V
return-void
.end method
.method public constructor <init>(Ljava/util/concurrent/ThreadFactory;)V
.locals 1
.line 2
invoke-direct {p0}, Lkh/h0;-><init>()V
.line 3
iput-object p1, p0, Lio/reactivex/internal/schedulers/a;->b:Ljava/util/concurrent/ThreadFactory;
.line 4
new-instance p1, Ljava/util/concurrent/atomic/AtomicReference;
sget-object v0, Lio/reactivex/internal/schedulers/a;->d:Lio/reactivex/internal/schedulers/a$b;
invoke-direct {p1, v0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>(Ljava/lang/Object;)V
iput-object p1, p0, Lio/reactivex/internal/schedulers/a;->c:Ljava/util/concurrent/atomic/AtomicReference;
.line 5
invoke-virtual {p0}, Lio/reactivex/internal/schedulers/a;->i()V
return-void
.end method
.method public static k(II)I
.locals 0
if-lez p1, :cond_1
if-le p1, p0, :cond_0
goto :goto_0
:cond_0
move p0, p1
:cond_1
:goto_0
return p0
.end method
# virtual methods
.method public a(ILio/reactivex/internal/schedulers/i$a;)V
.locals 1
const-string v0, "number > 0 required"
.line 1
invoke-static {p1, v0}, Lio/reactivex/internal/functions/a;->h(ILjava/lang/String;)I
.line 2
iget-object v0, p0, Lio/reactivex/internal/schedulers/a;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lio/reactivex/internal/schedulers/a$b;
invoke-virtual {v0, p1, p2}, Lio/reactivex/internal/schedulers/a$b;->a(ILio/reactivex/internal/schedulers/i$a;)V
return-void
.end method
.method public c()Lkh/h0$c;
.locals 2
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
new-instance v0, Lio/reactivex/internal/schedulers/a$a;
iget-object v1, p0, Lio/reactivex/internal/schedulers/a;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lio/reactivex/internal/schedulers/a$b;
invoke-virtual {v1}, Lio/reactivex/internal/schedulers/a$b;->b()Lio/reactivex/internal/schedulers/a$c;
move-result-object v1
invoke-direct {v0, v1}, Lio/reactivex/internal/schedulers/a$a;-><init>(Lio/reactivex/internal/schedulers/a$c;)V
return-object v0
.end method
.method public f(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 1
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/a;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lio/reactivex/internal/schedulers/a$b;
invoke-virtual {v0}, Lio/reactivex/internal/schedulers/a$b;->b()Lio/reactivex/internal/schedulers/a$c;
move-result-object v0
.line 2
invoke-virtual {v0, p1, p2, p3, p4}, Lio/reactivex/internal/schedulers/g;->f(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
move-result-object p1
return-object p1
.end method
.method public g(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 8
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/a;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lio/reactivex/internal/schedulers/a$b;
invoke-virtual {v0}, Lio/reactivex/internal/schedulers/a$b;->b()Lio/reactivex/internal/schedulers/a$c;
move-result-object v1
move-object v2, p1
move-wide v3, p2
move-wide v5, p4
move-object v7, p6
.line 2
invoke-virtual/range {v1 .. v7}, Lio/reactivex/internal/schedulers/g;->g(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
move-result-object p1
return-object p1
.end method
.method public h()V
.locals 3
.line 1
:cond_0
iget-object v0, p0, Lio/reactivex/internal/schedulers/a;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lio/reactivex/internal/schedulers/a$b;
.line 2
sget-object v1, Lio/reactivex/internal/schedulers/a;->d:Lio/reactivex/internal/schedulers/a$b;
if-ne v0, v1, :cond_1
return-void
.line 3
:cond_1
iget-object v2, p0, Lio/reactivex/internal/schedulers/a;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v2, v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_0
.line 4
invoke-virtual {v0}, Lio/reactivex/internal/schedulers/a$b;->c()V
return-void
.end method
.method public i()V
.locals 3
.line 1
new-instance v0, Lio/reactivex/internal/schedulers/a$b;
sget v1, Lio/reactivex/internal/schedulers/a;->h:I
iget-object v2, p0, Lio/reactivex/internal/schedulers/a;->b:Ljava/util/concurrent/ThreadFactory;
invoke-direct {v0, v1, v2}, Lio/reactivex/internal/schedulers/a$b;-><init>(ILjava/util/concurrent/ThreadFactory;)V
.line 2
iget-object v1, p0, Lio/reactivex/internal/schedulers/a;->c:Ljava/util/concurrent/atomic/AtomicReference;
sget-object v2, Lio/reactivex/internal/schedulers/a;->d:Lio/reactivex/internal/schedulers/a$b;
invoke-virtual {v1, v2, v0}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_0
.line 3
invoke-virtual {v0}, Lio/reactivex/internal/schedulers/a$b;->c()V
:cond_0
return-void
.end method
@@ -0,0 +1,95 @@
.class public final Lio/reactivex/internal/schedulers/b;
.super Ljava/lang/Object;
.source "DisposeOnCancel.java"
# interfaces
.implements Ljava/util/concurrent/Future;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Ljava/util/concurrent/Future<",
"Ljava/lang/Object;",
">;"
}
.end annotation
# instance fields
.field public final a:Lio/reactivex/disposables/b;
# direct methods
.method public constructor <init>(Lio/reactivex/disposables/b;)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lio/reactivex/internal/schedulers/b;->a:Lio/reactivex/disposables/b;
return-void
.end method
# virtual methods
.method public cancel(Z)Z
.locals 0
.line 1
iget-object p1, p0, Lio/reactivex/internal/schedulers/b;->a:Lio/reactivex/disposables/b;
invoke-interface {p1}, Lio/reactivex/disposables/b;->dispose()V
const/4 p1, 0x0
return p1
.end method
.method public get()Ljava/lang/Object;
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/InterruptedException;,
Ljava/util/concurrent/ExecutionException;
}
.end annotation
const/4 v0, 0x0
return-object v0
.end method
.method public get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
.locals 0
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/InterruptedException;,
Ljava/util/concurrent/ExecutionException;,
Ljava/util/concurrent/TimeoutException;
}
.end annotation
const/4 p1, 0x0
return-object p1
.end method
.method public isCancelled()Z
.locals 1
const/4 v0, 0x0
return v0
.end method
.method public isDone()Z
.locals 1
const/4 v0, 0x0
return v0
.end method
@@ -0,0 +1,101 @@
.class public final Lio/reactivex/internal/schedulers/c$a;
.super Lkh/h0$c;
.source "ImmediateThinScheduler.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/c;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "a"
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Lkh/h0$c;-><init>()V
return-void
.end method
# virtual methods
.method public b(Ljava/lang/Runnable;)Lio/reactivex/disposables/b;
.locals 0
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
invoke-interface {p1}, Ljava/lang/Runnable;->run()V
.line 2
sget-object p1, Lio/reactivex/internal/schedulers/c;->d:Lio/reactivex/disposables/b;
return-object p1
.end method
.method public c(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 0
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.param p4 # Ljava/util/concurrent/TimeUnit;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
new-instance p1, Ljava/lang/UnsupportedOperationException;
const-string p2, "This scheduler doesn\'t support delayed execution"
invoke-direct {p1, p2}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public d(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 0
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
new-instance p1, Ljava/lang/UnsupportedOperationException;
const-string p2, "This scheduler doesn\'t support periodic execution"
invoke-direct {p1, p2}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public dispose()V
.locals 0
return-void
.end method
.method public isDisposed()Z
.locals 1
const/4 v0, 0x0
return v0
.end method
@@ -0,0 +1,129 @@
.class public final Lio/reactivex/internal/schedulers/c;
.super Lkh/h0;
.source "ImmediateThinScheduler.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/reactivex/internal/schedulers/c$a;
}
.end annotation
# static fields
.field public static final b:Lkh/h0;
.field public static final c:Lkh/h0$c;
.field public static final d:Lio/reactivex/disposables/b;
# direct methods
.method public static constructor <clinit>()V
.locals 1
.line 1
new-instance v0, Lio/reactivex/internal/schedulers/c;
invoke-direct {v0}, Lio/reactivex/internal/schedulers/c;-><init>()V
sput-object v0, Lio/reactivex/internal/schedulers/c;->b:Lkh/h0;
.line 2
new-instance v0, Lio/reactivex/internal/schedulers/c$a;
invoke-direct {v0}, Lio/reactivex/internal/schedulers/c$a;-><init>()V
sput-object v0, Lio/reactivex/internal/schedulers/c;->c:Lkh/h0$c;
.line 3
invoke-static {}, Lio/reactivex/disposables/c;->b()Lio/reactivex/disposables/b;
move-result-object v0
sput-object v0, Lio/reactivex/internal/schedulers/c;->d:Lio/reactivex/disposables/b;
.line 4
invoke-interface {v0}, Lio/reactivex/disposables/b;->dispose()V
return-void
.end method
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Lkh/h0;-><init>()V
return-void
.end method
# virtual methods
.method public c()Lkh/h0$c;
.locals 1
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
sget-object v0, Lio/reactivex/internal/schedulers/c;->c:Lkh/h0$c;
return-object v0
.end method
.method public e(Ljava/lang/Runnable;)Lio/reactivex/disposables/b;
.locals 0
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
invoke-interface {p1}, Ljava/lang/Runnable;->run()V
.line 2
sget-object p1, Lio/reactivex/internal/schedulers/c;->d:Lio/reactivex/disposables/b;
return-object p1
.end method
.method public f(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 0
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
new-instance p1, Ljava/lang/UnsupportedOperationException;
const-string p2, "This scheduler doesn\'t support delayed execution"
invoke-direct {p1, p2}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public g(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 0
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
new-instance p1, Ljava/lang/UnsupportedOperationException;
const-string p2, "This scheduler doesn\'t support periodic execution"
invoke-direct {p1, p2}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw p1
.end method
@@ -0,0 +1,396 @@
.class public final Lio/reactivex/internal/schedulers/d;
.super Ljava/lang/Object;
.source "InstantPeriodicTask.java"
# interfaces
.implements Ljava/util/concurrent/Callable;
.implements Lio/reactivex/disposables/b;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Ljava/util/concurrent/Callable<",
"Ljava/lang/Void;",
">;",
"Lio/reactivex/disposables/b;"
}
.end annotation
# static fields
.field public static final f:Ljava/util/concurrent/FutureTask;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/FutureTask<",
"Ljava/lang/Void;",
">;"
}
.end annotation
.end field
# instance fields
.field public final a:Ljava/lang/Runnable;
.field public final b:Ljava/util/concurrent/atomic/AtomicReference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReference<",
"Ljava/util/concurrent/Future<",
"*>;>;"
}
.end annotation
.end field
.field public final c:Ljava/util/concurrent/atomic/AtomicReference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReference<",
"Ljava/util/concurrent/Future<",
"*>;>;"
}
.end annotation
.end field
.field public final d:Ljava/util/concurrent/ExecutorService;
.field public e:Ljava/lang/Thread;
# direct methods
.method public static constructor <clinit>()V
.locals 3
.line 1
new-instance v0, Ljava/util/concurrent/FutureTask;
sget-object v1, Lio/reactivex/internal/functions/Functions;->b:Ljava/lang/Runnable;
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Ljava/util/concurrent/FutureTask;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;)V
sput-object v0, Lio/reactivex/internal/schedulers/d;->f:Ljava/util/concurrent/FutureTask;
return-void
.end method
.method public constructor <init>(Ljava/lang/Runnable;Ljava/util/concurrent/ExecutorService;)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lio/reactivex/internal/schedulers/d;->a:Ljava/lang/Runnable;
.line 3
new-instance p1, Ljava/util/concurrent/atomic/AtomicReference;
invoke-direct {p1}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
iput-object p1, p0, Lio/reactivex/internal/schedulers/d;->c:Ljava/util/concurrent/atomic/AtomicReference;
.line 4
new-instance p1, Ljava/util/concurrent/atomic/AtomicReference;
invoke-direct {p1}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
iput-object p1, p0, Lio/reactivex/internal/schedulers/d;->b:Ljava/util/concurrent/atomic/AtomicReference;
.line 5
iput-object p2, p0, Lio/reactivex/internal/schedulers/d;->d:Ljava/util/concurrent/ExecutorService;
return-void
.end method
# virtual methods
.method public a()Ljava/lang/Void;
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.line 1
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
iput-object v0, p0, Lio/reactivex/internal/schedulers/d;->e:Ljava/lang/Thread;
const/4 v0, 0x0
.line 2
:try_start_0
iget-object v1, p0, Lio/reactivex/internal/schedulers/d;->a:Ljava/lang/Runnable;
invoke-interface {v1}, Ljava/lang/Runnable;->run()V
.line 3
iget-object v1, p0, Lio/reactivex/internal/schedulers/d;->d:Ljava/util/concurrent/ExecutorService;
invoke-interface {v1, p0}, Ljava/util/concurrent/ExecutorService;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
move-result-object v1
invoke-virtual {p0, v1}, Lio/reactivex/internal/schedulers/d;->c(Ljava/util/concurrent/Future;)V
.line 4
iput-object v0, p0, Lio/reactivex/internal/schedulers/d;->e:Ljava/lang/Thread;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
goto :goto_0
:catchall_0
move-exception v1
.line 5
iput-object v0, p0, Lio/reactivex/internal/schedulers/d;->e:Ljava/lang/Thread;
.line 6
invoke-static {v1}, Lwh/a;->Y(Ljava/lang/Throwable;)V
:goto_0
return-object v0
.end method
.method public b(Ljava/util/concurrent/Future;)V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/concurrent/Future<",
"*>;)V"
}
.end annotation
.line 1
:cond_0
iget-object v0, p0, Lio/reactivex/internal/schedulers/d;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/concurrent/Future;
.line 2
sget-object v1, Lio/reactivex/internal/schedulers/d;->f:Ljava/util/concurrent/FutureTask;
if-ne v0, v1, :cond_2
.line 3
iget-object v0, p0, Lio/reactivex/internal/schedulers/d;->e:Ljava/lang/Thread;
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v1
if-eq v0, v1, :cond_1
const/4 v0, 0x1
goto :goto_0
:cond_1
const/4 v0, 0x0
:goto_0
invoke-interface {p1, v0}, Ljava/util/concurrent/Future;->cancel(Z)Z
return-void
.line 4
:cond_2
iget-object v1, p0, Lio/reactivex/internal/schedulers/d;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v1, v0, p1}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
return-void
.end method
.method public c(Ljava/util/concurrent/Future;)V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/concurrent/Future<",
"*>;)V"
}
.end annotation
.line 1
:cond_0
iget-object v0, p0, Lio/reactivex/internal/schedulers/d;->b:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/concurrent/Future;
.line 2
sget-object v1, Lio/reactivex/internal/schedulers/d;->f:Ljava/util/concurrent/FutureTask;
if-ne v0, v1, :cond_2
.line 3
iget-object v0, p0, Lio/reactivex/internal/schedulers/d;->e:Ljava/lang/Thread;
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v1
if-eq v0, v1, :cond_1
const/4 v0, 0x1
goto :goto_0
:cond_1
const/4 v0, 0x0
:goto_0
invoke-interface {p1, v0}, Ljava/util/concurrent/Future;->cancel(Z)Z
return-void
.line 4
:cond_2
iget-object v1, p0, Lio/reactivex/internal/schedulers/d;->b:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v1, v0, p1}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
return-void
.end method
.method public bridge synthetic call()Ljava/lang/Object;
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.line 1
invoke-virtual {p0}, Lio/reactivex/internal/schedulers/d;->a()Ljava/lang/Void;
move-result-object v0
return-object v0
.end method
.method public dispose()V
.locals 6
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/d;->c:Ljava/util/concurrent/atomic/AtomicReference;
sget-object v1, Lio/reactivex/internal/schedulers/d;->f:Ljava/util/concurrent/FutureTask;
invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->getAndSet(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/concurrent/Future;
const/4 v2, 0x1
const/4 v3, 0x0
if-eqz v0, :cond_1
if-eq v0, v1, :cond_1
.line 2
iget-object v4, p0, Lio/reactivex/internal/schedulers/d;->e:Ljava/lang/Thread;
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v5
if-eq v4, v5, :cond_0
move v4, v2
goto :goto_0
:cond_0
move v4, v3
:goto_0
invoke-interface {v0, v4}, Ljava/util/concurrent/Future;->cancel(Z)Z
.line 3
:cond_1
iget-object v0, p0, Lio/reactivex/internal/schedulers/d;->b:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->getAndSet(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/concurrent/Future;
if-eqz v0, :cond_3
if-eq v0, v1, :cond_3
.line 4
iget-object v1, p0, Lio/reactivex/internal/schedulers/d;->e:Ljava/lang/Thread;
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v4
if-eq v1, v4, :cond_2
goto :goto_1
:cond_2
move v2, v3
:goto_1
invoke-interface {v0, v2}, Ljava/util/concurrent/Future;->cancel(Z)Z
:cond_3
return-void
.end method
.method public isDisposed()Z
.locals 2
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/d;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
sget-object v1, Lio/reactivex/internal/schedulers/d;->f:Ljava/util/concurrent/FutureTask;
if-ne v0, v1, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
@@ -0,0 +1,327 @@
.class public final Lio/reactivex/internal/schedulers/e$a;
.super Ljava/lang/Object;
.source "IoScheduler.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/e;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "a"
.end annotation
# instance fields
.field public final a:J
.field public final b:Ljava/util/concurrent/ConcurrentLinkedQueue;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/ConcurrentLinkedQueue<",
"Lio/reactivex/internal/schedulers/e$c;",
">;"
}
.end annotation
.end field
.field public final c:Lio/reactivex/disposables/a;
.field public final d:Ljava/util/concurrent/ScheduledExecutorService;
.field public final e:Ljava/util/concurrent/Future;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/Future<",
"*>;"
}
.end annotation
.end field
.field public final f:Ljava/util/concurrent/ThreadFactory;
# direct methods
.method public constructor <init>(JLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/ThreadFactory;)V
.locals 7
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
if-eqz p3, :cond_0
.line 2
invoke-virtual {p3, p1, p2}, Ljava/util/concurrent/TimeUnit;->toNanos(J)J
move-result-wide p1
goto :goto_0
:cond_0
const-wide/16 p1, 0x0
:goto_0
move-wide v4, p1
iput-wide v4, p0, Lio/reactivex/internal/schedulers/e$a;->a:J
.line 3
new-instance p1, Ljava/util/concurrent/ConcurrentLinkedQueue;
invoke-direct {p1}, Ljava/util/concurrent/ConcurrentLinkedQueue;-><init>()V
iput-object p1, p0, Lio/reactivex/internal/schedulers/e$a;->b:Ljava/util/concurrent/ConcurrentLinkedQueue;
.line 4
new-instance p1, Lio/reactivex/disposables/a;
invoke-direct {p1}, Lio/reactivex/disposables/a;-><init>()V
iput-object p1, p0, Lio/reactivex/internal/schedulers/e$a;->c:Lio/reactivex/disposables/a;
.line 5
iput-object p4, p0, Lio/reactivex/internal/schedulers/e$a;->f:Ljava/util/concurrent/ThreadFactory;
const/4 p1, 0x0
if-eqz p3, :cond_1
const/4 p1, 0x1
.line 6
sget-object p2, Lio/reactivex/internal/schedulers/e;->g:Lio/reactivex/internal/schedulers/RxThreadFactory;
invoke-static {p1, p2}, Ljava/util/concurrent/Executors;->newScheduledThreadPool(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
move-result-object p1
.line 7
sget-object v6, Ljava/util/concurrent/TimeUnit;->NANOSECONDS:Ljava/util/concurrent/TimeUnit;
move-object v0, p1
move-object v1, p0
move-wide v2, v4
invoke-interface/range {v0 .. v6}, Ljava/util/concurrent/ScheduledExecutorService;->scheduleWithFixedDelay(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
move-result-object p2
goto :goto_1
:cond_1
move-object p2, p1
.line 8
:goto_1
iput-object p1, p0, Lio/reactivex/internal/schedulers/e$a;->d:Ljava/util/concurrent/ScheduledExecutorService;
.line 9
iput-object p2, p0, Lio/reactivex/internal/schedulers/e$a;->e:Ljava/util/concurrent/Future;
return-void
.end method
# virtual methods
.method public a()V
.locals 6
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/e$a;->b:Ljava/util/concurrent/ConcurrentLinkedQueue;
invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentLinkedQueue;->isEmpty()Z
move-result v0
if-nez v0, :cond_1
.line 2
invoke-virtual {p0}, Lio/reactivex/internal/schedulers/e$a;->c()J
move-result-wide v0
.line 3
iget-object v2, p0, Lio/reactivex/internal/schedulers/e$a;->b:Ljava/util/concurrent/ConcurrentLinkedQueue;
invoke-virtual {v2}, Ljava/util/concurrent/ConcurrentLinkedQueue;->iterator()Ljava/util/Iterator;
move-result-object v2
:cond_0
:goto_0
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_1
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
check-cast v3, Lio/reactivex/internal/schedulers/e$c;
.line 4
invoke-virtual {v3}, Lio/reactivex/internal/schedulers/e$c;->i()J
move-result-wide v4
cmp-long v4, v4, v0
if-gtz v4, :cond_1
.line 5
iget-object v4, p0, Lio/reactivex/internal/schedulers/e$a;->b:Ljava/util/concurrent/ConcurrentLinkedQueue;
invoke-virtual {v4, v3}, Ljava/util/concurrent/ConcurrentLinkedQueue;->remove(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_0
.line 6
iget-object v4, p0, Lio/reactivex/internal/schedulers/e$a;->c:Lio/reactivex/disposables/a;
invoke-virtual {v4, v3}, Lio/reactivex/disposables/a;->a(Lio/reactivex/disposables/b;)Z
goto :goto_0
:cond_1
return-void
.end method
.method public b()Lio/reactivex/internal/schedulers/e$c;
.locals 2
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/e$a;->c:Lio/reactivex/disposables/a;
invoke-virtual {v0}, Lio/reactivex/disposables/a;->isDisposed()Z
move-result v0
if-eqz v0, :cond_0
.line 2
sget-object v0, Lio/reactivex/internal/schedulers/e;->l:Lio/reactivex/internal/schedulers/e$c;
return-object v0
.line 3
:cond_0
iget-object v0, p0, Lio/reactivex/internal/schedulers/e$a;->b:Ljava/util/concurrent/ConcurrentLinkedQueue;
invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentLinkedQueue;->isEmpty()Z
move-result v0
if-nez v0, :cond_1
.line 4
iget-object v0, p0, Lio/reactivex/internal/schedulers/e$a;->b:Ljava/util/concurrent/ConcurrentLinkedQueue;
invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentLinkedQueue;->poll()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lio/reactivex/internal/schedulers/e$c;
if-eqz v0, :cond_0
return-object v0
.line 5
:cond_1
new-instance v0, Lio/reactivex/internal/schedulers/e$c;
iget-object v1, p0, Lio/reactivex/internal/schedulers/e$a;->f:Ljava/util/concurrent/ThreadFactory;
invoke-direct {v0, v1}, Lio/reactivex/internal/schedulers/e$c;-><init>(Ljava/util/concurrent/ThreadFactory;)V
.line 6
iget-object v1, p0, Lio/reactivex/internal/schedulers/e$a;->c:Lio/reactivex/disposables/a;
invoke-virtual {v1, v0}, Lio/reactivex/disposables/a;->b(Lio/reactivex/disposables/b;)Z
return-object v0
.end method
.method public c()J
.locals 2
.line 1
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v0
return-wide v0
.end method
.method public d(Lio/reactivex/internal/schedulers/e$c;)V
.locals 4
.line 1
invoke-virtual {p0}, Lio/reactivex/internal/schedulers/e$a;->c()J
move-result-wide v0
iget-wide v2, p0, Lio/reactivex/internal/schedulers/e$a;->a:J
add-long/2addr v0, v2
invoke-virtual {p1, v0, v1}, Lio/reactivex/internal/schedulers/e$c;->j(J)V
.line 2
iget-object v0, p0, Lio/reactivex/internal/schedulers/e$a;->b:Ljava/util/concurrent/ConcurrentLinkedQueue;
invoke-virtual {v0, p1}, Ljava/util/concurrent/ConcurrentLinkedQueue;->offer(Ljava/lang/Object;)Z
return-void
.end method
.method public e()V
.locals 2
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/e$a;->c:Lio/reactivex/disposables/a;
invoke-virtual {v0}, Lio/reactivex/disposables/a;->dispose()V
.line 2
iget-object v0, p0, Lio/reactivex/internal/schedulers/e$a;->e:Ljava/util/concurrent/Future;
if-eqz v0, :cond_0
const/4 v1, 0x1
.line 3
invoke-interface {v0, v1}, Ljava/util/concurrent/Future;->cancel(Z)Z
.line 4
:cond_0
iget-object v0, p0, Lio/reactivex/internal/schedulers/e$a;->d:Ljava/util/concurrent/ScheduledExecutorService;
if-eqz v0, :cond_1
.line 5
invoke-interface {v0}, Ljava/util/concurrent/ScheduledExecutorService;->shutdownNow()Ljava/util/List;
:cond_1
return-void
.end method
.method public run()V
.locals 0
.line 1
invoke-virtual {p0}, Lio/reactivex/internal/schedulers/e$a;->a()V
return-void
.end method
@@ -0,0 +1,152 @@
.class public final Lio/reactivex/internal/schedulers/e$b;
.super Lkh/h0$c;
.source "IoScheduler.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/e;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "b"
.end annotation
# instance fields
.field public final a:Lio/reactivex/disposables/a;
.field public final b:Lio/reactivex/internal/schedulers/e$a;
.field public final c:Lio/reactivex/internal/schedulers/e$c;
.field public final d:Ljava/util/concurrent/atomic/AtomicBoolean;
# direct methods
.method public constructor <init>(Lio/reactivex/internal/schedulers/e$a;)V
.locals 1
.line 1
invoke-direct {p0}, Lkh/h0$c;-><init>()V
.line 2
new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;-><init>()V
iput-object v0, p0, Lio/reactivex/internal/schedulers/e$b;->d:Ljava/util/concurrent/atomic/AtomicBoolean;
.line 3
iput-object p1, p0, Lio/reactivex/internal/schedulers/e$b;->b:Lio/reactivex/internal/schedulers/e$a;
.line 4
new-instance v0, Lio/reactivex/disposables/a;
invoke-direct {v0}, Lio/reactivex/disposables/a;-><init>()V
iput-object v0, p0, Lio/reactivex/internal/schedulers/e$b;->a:Lio/reactivex/disposables/a;
.line 5
invoke-virtual {p1}, Lio/reactivex/internal/schedulers/e$a;->b()Lio/reactivex/internal/schedulers/e$c;
move-result-object p1
iput-object p1, p0, Lio/reactivex/internal/schedulers/e$b;->c:Lio/reactivex/internal/schedulers/e$c;
return-void
.end method
# virtual methods
.method public c(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 6
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.param p4 # Ljava/util/concurrent/TimeUnit;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/e$b;->a:Lio/reactivex/disposables/a;
invoke-virtual {v0}, Lio/reactivex/disposables/a;->isDisposed()Z
move-result v0
if-eqz v0, :cond_0
.line 2
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.line 3
:cond_0
iget-object v0, p0, Lio/reactivex/internal/schedulers/e$b;->c:Lio/reactivex/internal/schedulers/e$c;
iget-object v5, p0, Lio/reactivex/internal/schedulers/e$b;->a:Lio/reactivex/disposables/a;
move-object v1, p1
move-wide v2, p2
move-object v4, p4
invoke-virtual/range {v0 .. v5}, Lio/reactivex/internal/schedulers/g;->e(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;Lqh/a;)Lio/reactivex/internal/schedulers/ScheduledRunnable;
move-result-object p1
return-object p1
.end method
.method public dispose()V
.locals 3
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/e$b;->d:Ljava/util/concurrent/atomic/AtomicBoolean;
const/4 v1, 0x0
const/4 v2, 0x1
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z
move-result v0
if-eqz v0, :cond_0
.line 2
iget-object v0, p0, Lio/reactivex/internal/schedulers/e$b;->a:Lio/reactivex/disposables/a;
invoke-virtual {v0}, Lio/reactivex/disposables/a;->dispose()V
.line 3
iget-object v0, p0, Lio/reactivex/internal/schedulers/e$b;->b:Lio/reactivex/internal/schedulers/e$a;
iget-object v1, p0, Lio/reactivex/internal/schedulers/e$b;->c:Lio/reactivex/internal/schedulers/e$c;
invoke-virtual {v0, v1}, Lio/reactivex/internal/schedulers/e$a;->d(Lio/reactivex/internal/schedulers/e$c;)V
:cond_0
return-void
.end method
.method public isDisposed()Z
.locals 1
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/e$b;->d:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
move-result v0
return v0
.end method
@@ -0,0 +1,54 @@
.class public final Lio/reactivex/internal/schedulers/e$c;
.super Lio/reactivex/internal/schedulers/g;
.source "IoScheduler.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/e;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "c"
.end annotation
# instance fields
.field public c:J
# direct methods
.method public constructor <init>(Ljava/util/concurrent/ThreadFactory;)V
.locals 2
.line 1
invoke-direct {p0, p1}, Lio/reactivex/internal/schedulers/g;-><init>(Ljava/util/concurrent/ThreadFactory;)V
const-wide/16 v0, 0x0
.line 2
iput-wide v0, p0, Lio/reactivex/internal/schedulers/e$c;->c:J
return-void
.end method
# virtual methods
.method public i()J
.locals 2
.line 1
iget-wide v0, p0, Lio/reactivex/internal/schedulers/e$c;->c:J
return-wide v0
.end method
.method public j(J)V
.locals 0
.line 1
iput-wide p1, p0, Lio/reactivex/internal/schedulers/e$c;->c:J
return-void
.end method
@@ -0,0 +1,300 @@
.class public final Lio/reactivex/internal/schedulers/e;
.super Lkh/h0;
.source "IoScheduler.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/reactivex/internal/schedulers/e$c;,
Lio/reactivex/internal/schedulers/e$b;,
Lio/reactivex/internal/schedulers/e$a;
}
.end annotation
# static fields
.field public static final d:Ljava/lang/String; = "RxCachedThreadScheduler"
.field public static final e:Lio/reactivex/internal/schedulers/RxThreadFactory;
.field public static final f:Ljava/lang/String; = "RxCachedWorkerPoolEvictor"
.field public static final g:Lio/reactivex/internal/schedulers/RxThreadFactory;
.field public static final h:Ljava/lang/String; = "rx2.io-keep-alive-time"
.field public static final i:J = 0x3cL
.field public static final j:J
.field public static final k:Ljava/util/concurrent/TimeUnit;
.field public static final l:Lio/reactivex/internal/schedulers/e$c;
.field public static final p:Ljava/lang/String; = "rx2.io-priority"
.field public static final u:Lio/reactivex/internal/schedulers/e$a;
# instance fields
.field public final b:Ljava/util/concurrent/ThreadFactory;
.field public final c:Ljava/util/concurrent/atomic/AtomicReference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReference<",
"Lio/reactivex/internal/schedulers/e$a;",
">;"
}
.end annotation
.end field
# direct methods
.method public static constructor <clinit>()V
.locals 5
.line 1
sget-object v0, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;
sput-object v0, Lio/reactivex/internal/schedulers/e;->k:Ljava/util/concurrent/TimeUnit;
const-string v0, "rx2.io-keep-alive-time"
const-wide/16 v1, 0x3c
.line 2
invoke-static {v0, v1, v2}, Ljava/lang/Long;->getLong(Ljava/lang/String;J)Ljava/lang/Long;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Long;->longValue()J
move-result-wide v0
sput-wide v0, Lio/reactivex/internal/schedulers/e;->j:J
.line 3
new-instance v0, Lio/reactivex/internal/schedulers/e$c;
new-instance v1, Lio/reactivex/internal/schedulers/RxThreadFactory;
const-string v2, "RxCachedThreadSchedulerShutdown"
invoke-direct {v1, v2}, Lio/reactivex/internal/schedulers/RxThreadFactory;-><init>(Ljava/lang/String;)V
invoke-direct {v0, v1}, Lio/reactivex/internal/schedulers/e$c;-><init>(Ljava/util/concurrent/ThreadFactory;)V
sput-object v0, Lio/reactivex/internal/schedulers/e;->l:Lio/reactivex/internal/schedulers/e$c;
.line 4
invoke-virtual {v0}, Lio/reactivex/internal/schedulers/g;->dispose()V
const-string v0, "rx2.io-priority"
const/4 v1, 0x5
.line 5
invoke-static {v0, v1}, Ljava/lang/Integer;->getInteger(Ljava/lang/String;I)Ljava/lang/Integer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
const/16 v1, 0xa
.line 6
invoke-static {v1, v0}, Ljava/lang/Math;->min(II)I
move-result v0
const/4 v1, 0x1
invoke-static {v1, v0}, Ljava/lang/Math;->max(II)I
move-result v0
.line 7
new-instance v1, Lio/reactivex/internal/schedulers/RxThreadFactory;
const-string v2, "RxCachedThreadScheduler"
invoke-direct {v1, v2, v0}, Lio/reactivex/internal/schedulers/RxThreadFactory;-><init>(Ljava/lang/String;I)V
sput-object v1, Lio/reactivex/internal/schedulers/e;->e:Lio/reactivex/internal/schedulers/RxThreadFactory;
.line 8
new-instance v2, Lio/reactivex/internal/schedulers/RxThreadFactory;
const-string v3, "RxCachedWorkerPoolEvictor"
invoke-direct {v2, v3, v0}, Lio/reactivex/internal/schedulers/RxThreadFactory;-><init>(Ljava/lang/String;I)V
sput-object v2, Lio/reactivex/internal/schedulers/e;->g:Lio/reactivex/internal/schedulers/RxThreadFactory;
.line 9
new-instance v0, Lio/reactivex/internal/schedulers/e$a;
const-wide/16 v2, 0x0
const/4 v4, 0x0
invoke-direct {v0, v2, v3, v4, v1}, Lio/reactivex/internal/schedulers/e$a;-><init>(JLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/ThreadFactory;)V
sput-object v0, Lio/reactivex/internal/schedulers/e;->u:Lio/reactivex/internal/schedulers/e$a;
.line 10
invoke-virtual {v0}, Lio/reactivex/internal/schedulers/e$a;->e()V
return-void
.end method
.method public constructor <init>()V
.locals 1
.line 1
sget-object v0, Lio/reactivex/internal/schedulers/e;->e:Lio/reactivex/internal/schedulers/RxThreadFactory;
invoke-direct {p0, v0}, Lio/reactivex/internal/schedulers/e;-><init>(Ljava/util/concurrent/ThreadFactory;)V
return-void
.end method
.method public constructor <init>(Ljava/util/concurrent/ThreadFactory;)V
.locals 1
.line 2
invoke-direct {p0}, Lkh/h0;-><init>()V
.line 3
iput-object p1, p0, Lio/reactivex/internal/schedulers/e;->b:Ljava/util/concurrent/ThreadFactory;
.line 4
new-instance p1, Ljava/util/concurrent/atomic/AtomicReference;
sget-object v0, Lio/reactivex/internal/schedulers/e;->u:Lio/reactivex/internal/schedulers/e$a;
invoke-direct {p1, v0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>(Ljava/lang/Object;)V
iput-object p1, p0, Lio/reactivex/internal/schedulers/e;->c:Ljava/util/concurrent/atomic/AtomicReference;
.line 5
invoke-virtual {p0}, Lio/reactivex/internal/schedulers/e;->i()V
return-void
.end method
# virtual methods
.method public c()Lkh/h0$c;
.locals 2
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
new-instance v0, Lio/reactivex/internal/schedulers/e$b;
iget-object v1, p0, Lio/reactivex/internal/schedulers/e;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lio/reactivex/internal/schedulers/e$a;
invoke-direct {v0, v1}, Lio/reactivex/internal/schedulers/e$b;-><init>(Lio/reactivex/internal/schedulers/e$a;)V
return-object v0
.end method
.method public h()V
.locals 3
.line 1
:cond_0
iget-object v0, p0, Lio/reactivex/internal/schedulers/e;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lio/reactivex/internal/schedulers/e$a;
.line 2
sget-object v1, Lio/reactivex/internal/schedulers/e;->u:Lio/reactivex/internal/schedulers/e$a;
if-ne v0, v1, :cond_1
return-void
.line 3
:cond_1
iget-object v2, p0, Lio/reactivex/internal/schedulers/e;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v2, v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_0
.line 4
invoke-virtual {v0}, Lio/reactivex/internal/schedulers/e$a;->e()V
return-void
.end method
.method public i()V
.locals 5
.line 1
new-instance v0, Lio/reactivex/internal/schedulers/e$a;
sget-wide v1, Lio/reactivex/internal/schedulers/e;->j:J
sget-object v3, Lio/reactivex/internal/schedulers/e;->k:Ljava/util/concurrent/TimeUnit;
iget-object v4, p0, Lio/reactivex/internal/schedulers/e;->b:Ljava/util/concurrent/ThreadFactory;
invoke-direct {v0, v1, v2, v3, v4}, Lio/reactivex/internal/schedulers/e$a;-><init>(JLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/ThreadFactory;)V
.line 2
iget-object v1, p0, Lio/reactivex/internal/schedulers/e;->c:Ljava/util/concurrent/atomic/AtomicReference;
sget-object v2, Lio/reactivex/internal/schedulers/e;->u:Lio/reactivex/internal/schedulers/e$a;
invoke-virtual {v1, v2, v0}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_0
.line 3
invoke-virtual {v0}, Lio/reactivex/internal/schedulers/e$a;->e()V
:cond_0
return-void
.end method
.method public k()I
.locals 1
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/e;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lio/reactivex/internal/schedulers/e$a;
iget-object v0, v0, Lio/reactivex/internal/schedulers/e$a;->c:Lio/reactivex/disposables/a;
invoke-virtual {v0}, Lio/reactivex/disposables/a;->g()I
move-result v0
return v0
.end method
@@ -0,0 +1,98 @@
.class public final Lio/reactivex/internal/schedulers/f;
.super Lkh/h0;
.source "NewThreadScheduler.java"
# static fields
.field public static final c:Ljava/lang/String; = "RxNewThreadScheduler"
.field public static final d:Lio/reactivex/internal/schedulers/RxThreadFactory;
.field public static final e:Ljava/lang/String; = "rx2.newthread-priority"
# instance fields
.field public final b:Ljava/util/concurrent/ThreadFactory;
# direct methods
.method public static constructor <clinit>()V
.locals 3
const-string v0, "rx2.newthread-priority"
const/4 v1, 0x5
.line 1
invoke-static {v0, v1}, Ljava/lang/Integer;->getInteger(Ljava/lang/String;I)Ljava/lang/Integer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
const/16 v1, 0xa
.line 2
invoke-static {v1, v0}, Ljava/lang/Math;->min(II)I
move-result v0
const/4 v1, 0x1
invoke-static {v1, v0}, Ljava/lang/Math;->max(II)I
move-result v0
.line 3
new-instance v1, Lio/reactivex/internal/schedulers/RxThreadFactory;
const-string v2, "RxNewThreadScheduler"
invoke-direct {v1, v2, v0}, Lio/reactivex/internal/schedulers/RxThreadFactory;-><init>(Ljava/lang/String;I)V
sput-object v1, Lio/reactivex/internal/schedulers/f;->d:Lio/reactivex/internal/schedulers/RxThreadFactory;
return-void
.end method
.method public constructor <init>()V
.locals 1
.line 1
sget-object v0, Lio/reactivex/internal/schedulers/f;->d:Lio/reactivex/internal/schedulers/RxThreadFactory;
invoke-direct {p0, v0}, Lio/reactivex/internal/schedulers/f;-><init>(Ljava/util/concurrent/ThreadFactory;)V
return-void
.end method
.method public constructor <init>(Ljava/util/concurrent/ThreadFactory;)V
.locals 0
.line 2
invoke-direct {p0}, Lkh/h0;-><init>()V
.line 3
iput-object p1, p0, Lio/reactivex/internal/schedulers/f;->b:Ljava/util/concurrent/ThreadFactory;
return-void
.end method
# virtual methods
.method public c()Lkh/h0$c;
.locals 2
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
new-instance v0, Lio/reactivex/internal/schedulers/g;
iget-object v1, p0, Lio/reactivex/internal/schedulers/f;->b:Ljava/util/concurrent/ThreadFactory;
invoke-direct {v0, v1}, Lio/reactivex/internal/schedulers/g;-><init>(Ljava/util/concurrent/ThreadFactory;)V
return-object v0
.end method
@@ -0,0 +1,390 @@
.class public Lio/reactivex/internal/schedulers/g;
.super Lkh/h0$c;
.source "NewThreadWorker.java"
# interfaces
.implements Lio/reactivex/disposables/b;
# instance fields
.field public final a:Ljava/util/concurrent/ScheduledExecutorService;
.field public volatile b:Z
# direct methods
.method public constructor <init>(Ljava/util/concurrent/ThreadFactory;)V
.locals 0
.line 1
invoke-direct {p0}, Lkh/h0$c;-><init>()V
.line 2
invoke-static {p1}, Lio/reactivex/internal/schedulers/j;->a(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
move-result-object p1
iput-object p1, p0, Lio/reactivex/internal/schedulers/g;->a:Ljava/util/concurrent/ScheduledExecutorService;
return-void
.end method
# virtual methods
.method public b(Ljava/lang/Runnable;)Lio/reactivex/disposables/b;
.locals 3
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
const-wide/16 v0, 0x0
const/4 v2, 0x0
.line 1
invoke-virtual {p0, p1, v0, v1, v2}, Lio/reactivex/internal/schedulers/g;->c(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
move-result-object p1
return-object p1
.end method
.method public c(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 6
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.param p4 # Ljava/util/concurrent/TimeUnit;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/g;->b:Z
if-eqz v0, :cond_0
.line 2
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
:cond_0
const/4 v5, 0x0
move-object v0, p0
move-object v1, p1
move-wide v2, p2
move-object v4, p4
.line 3
invoke-virtual/range {v0 .. v5}, Lio/reactivex/internal/schedulers/g;->e(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;Lqh/a;)Lio/reactivex/internal/schedulers/ScheduledRunnable;
move-result-object p1
return-object p1
.end method
.method public dispose()V
.locals 1
.line 1
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/g;->b:Z
if-nez v0, :cond_0
const/4 v0, 0x1
.line 2
iput-boolean v0, p0, Lio/reactivex/internal/schedulers/g;->b:Z
.line 3
iget-object v0, p0, Lio/reactivex/internal/schedulers/g;->a:Ljava/util/concurrent/ScheduledExecutorService;
invoke-interface {v0}, Ljava/util/concurrent/ScheduledExecutorService;->shutdownNow()Ljava/util/List;
:cond_0
return-void
.end method
.method public e(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;Lqh/a;)Lio/reactivex/internal/schedulers/ScheduledRunnable;
.locals 3
.param p4 # Ljava/util/concurrent/TimeUnit;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.param p5 # Lqh/a;
.annotation build Lio/reactivex/annotations/Nullable;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
invoke-static {p1}, Lwh/a;->b0(Ljava/lang/Runnable;)Ljava/lang/Runnable;
move-result-object p1
.line 2
new-instance v0, Lio/reactivex/internal/schedulers/ScheduledRunnable;
invoke-direct {v0, p1, p5}, Lio/reactivex/internal/schedulers/ScheduledRunnable;-><init>(Ljava/lang/Runnable;Lqh/a;)V
if-eqz p5, :cond_0
.line 3
invoke-interface {p5, v0}, Lqh/a;->b(Lio/reactivex/disposables/b;)Z
move-result p1
if-nez p1, :cond_0
return-object v0
:cond_0
const-wide/16 v1, 0x0
cmp-long p1, p2, v1
if-gtz p1, :cond_1
.line 4
:try_start_0
iget-object p1, p0, Lio/reactivex/internal/schedulers/g;->a:Ljava/util/concurrent/ScheduledExecutorService;
invoke-interface {p1, v0}, Ljava/util/concurrent/ScheduledExecutorService;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
move-result-object p1
goto :goto_0
.line 5
:cond_1
iget-object p1, p0, Lio/reactivex/internal/schedulers/g;->a:Ljava/util/concurrent/ScheduledExecutorService;
invoke-interface {p1, v0, p2, p3, p4}, Ljava/util/concurrent/ScheduledExecutorService;->schedule(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
move-result-object p1
.line 6
:goto_0
invoke-virtual {v0, p1}, Lio/reactivex/internal/schedulers/ScheduledRunnable;->setFuture(Ljava/util/concurrent/Future;)V
:try_end_0
.catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_1
:catch_0
move-exception p1
if-eqz p5, :cond_2
.line 7
invoke-interface {p5, v0}, Lqh/a;->a(Lio/reactivex/disposables/b;)Z
.line 8
:cond_2
invoke-static {p1}, Lwh/a;->Y(Ljava/lang/Throwable;)V
:goto_1
return-object v0
.end method
.method public f(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 3
.line 1
new-instance v0, Lio/reactivex/internal/schedulers/ScheduledDirectTask;
invoke-static {p1}, Lwh/a;->b0(Ljava/lang/Runnable;)Ljava/lang/Runnable;
move-result-object p1
invoke-direct {v0, p1}, Lio/reactivex/internal/schedulers/ScheduledDirectTask;-><init>(Ljava/lang/Runnable;)V
const-wide/16 v1, 0x0
cmp-long p1, p2, v1
if-gtz p1, :cond_0
.line 2
:try_start_0
iget-object p1, p0, Lio/reactivex/internal/schedulers/g;->a:Ljava/util/concurrent/ScheduledExecutorService;
invoke-interface {p1, v0}, Ljava/util/concurrent/ScheduledExecutorService;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
move-result-object p1
goto :goto_0
.line 3
:cond_0
iget-object p1, p0, Lio/reactivex/internal/schedulers/g;->a:Ljava/util/concurrent/ScheduledExecutorService;
invoke-interface {p1, v0, p2, p3, p4}, Ljava/util/concurrent/ScheduledExecutorService;->schedule(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
move-result-object p1
.line 4
:goto_0
invoke-virtual {v0, p1}, Lio/reactivex/internal/schedulers/AbstractDirectTask;->setFuture(Ljava/util/concurrent/Future;)V
:try_end_0
.catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_0 .. :try_end_0} :catch_0
return-object v0
:catch_0
move-exception p1
.line 5
invoke-static {p1}, Lwh/a;->Y(Ljava/lang/Throwable;)V
.line 6
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.end method
.method public g(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 8
.line 1
invoke-static {p1}, Lwh/a;->b0(Ljava/lang/Runnable;)Ljava/lang/Runnable;
move-result-object p1
const-wide/16 v0, 0x0
cmp-long v2, p4, v0
if-gtz v2, :cond_1
.line 2
new-instance p4, Lio/reactivex/internal/schedulers/d;
iget-object p5, p0, Lio/reactivex/internal/schedulers/g;->a:Ljava/util/concurrent/ScheduledExecutorService;
invoke-direct {p4, p1, p5}, Lio/reactivex/internal/schedulers/d;-><init>(Ljava/lang/Runnable;Ljava/util/concurrent/ExecutorService;)V
cmp-long p1, p2, v0
if-gtz p1, :cond_0
.line 3
:try_start_0
iget-object p1, p0, Lio/reactivex/internal/schedulers/g;->a:Ljava/util/concurrent/ScheduledExecutorService;
invoke-interface {p1, p4}, Ljava/util/concurrent/ScheduledExecutorService;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
move-result-object p1
goto :goto_0
.line 4
:cond_0
iget-object p1, p0, Lio/reactivex/internal/schedulers/g;->a:Ljava/util/concurrent/ScheduledExecutorService;
invoke-interface {p1, p4, p2, p3, p6}, Ljava/util/concurrent/ScheduledExecutorService;->schedule(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
move-result-object p1
.line 5
:goto_0
invoke-virtual {p4, p1}, Lio/reactivex/internal/schedulers/d;->b(Ljava/util/concurrent/Future;)V
:try_end_0
.catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_0 .. :try_end_0} :catch_0
return-object p4
:catch_0
move-exception p1
.line 6
invoke-static {p1}, Lwh/a;->Y(Ljava/lang/Throwable;)V
.line 7
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.line 8
:cond_1
new-instance v7, Lio/reactivex/internal/schedulers/ScheduledDirectPeriodicTask;
invoke-direct {v7, p1}, Lio/reactivex/internal/schedulers/ScheduledDirectPeriodicTask;-><init>(Ljava/lang/Runnable;)V
.line 9
:try_start_1
iget-object v0, p0, Lio/reactivex/internal/schedulers/g;->a:Ljava/util/concurrent/ScheduledExecutorService;
move-object v1, v7
move-wide v2, p2
move-wide v4, p4
move-object v6, p6
invoke-interface/range {v0 .. v6}, Ljava/util/concurrent/ScheduledExecutorService;->scheduleAtFixedRate(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
move-result-object p1
.line 10
invoke-virtual {v7, p1}, Lio/reactivex/internal/schedulers/AbstractDirectTask;->setFuture(Ljava/util/concurrent/Future;)V
:try_end_1
.catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_1 .. :try_end_1} :catch_1
return-object v7
:catch_1
move-exception p1
.line 11
invoke-static {p1}, Lwh/a;->Y(Ljava/lang/Throwable;)V
.line 12
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.end method
.method public h()V
.locals 1
.line 1
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/g;->b:Z
if-nez v0, :cond_0
const/4 v0, 0x1
.line 2
iput-boolean v0, p0, Lio/reactivex/internal/schedulers/g;->b:Z
.line 3
iget-object v0, p0, Lio/reactivex/internal/schedulers/g;->a:Ljava/util/concurrent/ScheduledExecutorService;
invoke-interface {v0}, Ljava/util/concurrent/ScheduledExecutorService;->shutdown()V
:cond_0
return-void
.end method
.method public isDisposed()Z
.locals 1
.line 1
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/g;->b:Z
return v0
.end method
@@ -0,0 +1,3 @@
.class public interface abstract Lio/reactivex/internal/schedulers/h;
.super Ljava/lang/Object;
.source "NonBlockingThread.java"
@@ -0,0 +1,23 @@
.class public interface abstract Lio/reactivex/internal/schedulers/i$a;
.super Ljava/lang/Object;
.source "SchedulerMultiWorkerSupport.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/i;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "a"
.end annotation
# virtual methods
.method public abstract a(ILkh/h0$c;)V
.param p2 # Lkh/h0$c;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.end method
@@ -0,0 +1,20 @@
.class public interface abstract Lio/reactivex/internal/schedulers/i;
.super Ljava/lang/Object;
.source "SchedulerMultiWorkerSupport.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/reactivex/internal/schedulers/i$a;
}
.end annotation
# virtual methods
.method public abstract a(ILio/reactivex/internal/schedulers/i$a;)V
.param p2 # Lio/reactivex/internal/schedulers/i$a;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.end method
@@ -0,0 +1,108 @@
.class public final Lio/reactivex/internal/schedulers/j$a;
.super Ljava/lang/Object;
.source "SchedulerPoolFactory.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/j;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "a"
.end annotation
# instance fields
.field public a:Z
.field public b:I
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public a(Ljava/util/Properties;)V
.locals 3
const-string v0, "rx2.purge-enabled"
.line 1
invoke-virtual {p1, v0}, Ljava/util/Properties;->containsKey(Ljava/lang/Object;)Z
move-result v1
const/4 v2, 0x1
if-eqz v1, :cond_0
.line 2
invoke-virtual {p1, v0}, Ljava/util/Properties;->getProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/Boolean;->parseBoolean(Ljava/lang/String;)Z
move-result v0
iput-boolean v0, p0, Lio/reactivex/internal/schedulers/j$a;->a:Z
goto :goto_0
.line 3
:cond_0
iput-boolean v2, p0, Lio/reactivex/internal/schedulers/j$a;->a:Z
.line 4
:goto_0
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/j$a;->a:Z
if-eqz v0, :cond_1
const-string v0, "rx2.purge-period-seconds"
invoke-virtual {p1, v0}, Ljava/util/Properties;->containsKey(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_1
.line 5
:try_start_0
invoke-virtual {p1, v0}, Ljava/util/Properties;->getProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-static {p1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result p1
iput p1, p0, Lio/reactivex/internal/schedulers/j$a;->b:I
:try_end_0
.catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_1
.line 6
:catch_0
iput v2, p0, Lio/reactivex/internal/schedulers/j$a;->b:I
goto :goto_1
.line 7
:cond_1
iput v2, p0, Lio/reactivex/internal/schedulers/j$a;->b:I
:goto_1
return-void
.end method
@@ -0,0 +1,85 @@
.class public final Lio/reactivex/internal/schedulers/j$b;
.super Ljava/lang/Object;
.source "SchedulerPoolFactory.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/j;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "b"
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 3
.line 1
new-instance v0, Ljava/util/ArrayList;
sget-object v1, Lio/reactivex/internal/schedulers/j;->f:Ljava/util/Map;
invoke-interface {v1}, Ljava/util/Map;->keySet()Ljava/util/Set;
move-result-object v1
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_0
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_1
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/util/concurrent/ScheduledThreadPoolExecutor;
.line 2
invoke-virtual {v1}, Ljava/util/concurrent/ScheduledThreadPoolExecutor;->isShutdown()Z
move-result v2
if-eqz v2, :cond_0
.line 3
sget-object v2, Lio/reactivex/internal/schedulers/j;->f:Ljava/util/Map;
invoke-interface {v2, v1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_0
.line 4
:cond_0
invoke-virtual {v1}, Ljava/util/concurrent/ScheduledThreadPoolExecutor;->purge()V
goto :goto_0
:cond_1
return-void
.end method
@@ -0,0 +1,255 @@
.class public final Lio/reactivex/internal/schedulers/j;
.super Ljava/lang/Object;
.source "SchedulerPoolFactory.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/reactivex/internal/schedulers/j$b;,
Lio/reactivex/internal/schedulers/j$a;
}
.end annotation
# static fields
.field public static final a:Ljava/lang/String; = "rx2.purge-enabled"
.field public static final b:Z
.field public static final c:Ljava/lang/String; = "rx2.purge-period-seconds"
.field public static final d:I
.field public static final e:Ljava/util/concurrent/atomic/AtomicReference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReference<",
"Ljava/util/concurrent/ScheduledExecutorService;",
">;"
}
.end annotation
.end field
.field public static final f:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Ljava/util/concurrent/ScheduledThreadPoolExecutor;",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
# direct methods
.method public static constructor <clinit>()V
.locals 2
.line 1
new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;
invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
sput-object v0, Lio/reactivex/internal/schedulers/j;->e:Ljava/util/concurrent/atomic/AtomicReference;
.line 2
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
sput-object v0, Lio/reactivex/internal/schedulers/j;->f:Ljava/util/Map;
.line 3
invoke-static {}, Ljava/lang/System;->getProperties()Ljava/util/Properties;
move-result-object v0
.line 4
new-instance v1, Lio/reactivex/internal/schedulers/j$a;
invoke-direct {v1}, Lio/reactivex/internal/schedulers/j$a;-><init>()V
.line 5
invoke-virtual {v1, v0}, Lio/reactivex/internal/schedulers/j$a;->a(Ljava/util/Properties;)V
.line 6
iget-boolean v0, v1, Lio/reactivex/internal/schedulers/j$a;->a:Z
sput-boolean v0, Lio/reactivex/internal/schedulers/j;->b:Z
.line 7
iget v0, v1, Lio/reactivex/internal/schedulers/j$a;->b:I
sput v0, Lio/reactivex/internal/schedulers/j;->d:I
.line 8
invoke-static {}, Lio/reactivex/internal/schedulers/j;->c()V
return-void
.end method
.method public constructor <init>()V
.locals 2
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "No instances!"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static a(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
.locals 1
const/4 v0, 0x1
.line 1
invoke-static {v0, p0}, Ljava/util/concurrent/Executors;->newScheduledThreadPool(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
move-result-object p0
.line 2
sget-boolean v0, Lio/reactivex/internal/schedulers/j;->b:Z
invoke-static {v0, p0}, Lio/reactivex/internal/schedulers/j;->d(ZLjava/util/concurrent/ScheduledExecutorService;)V
return-object p0
.end method
.method public static b()V
.locals 2
.line 1
sget-object v0, Lio/reactivex/internal/schedulers/j;->e:Ljava/util/concurrent/atomic/AtomicReference;
const/4 v1, 0x0
invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->getAndSet(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/concurrent/ScheduledExecutorService;
if-eqz v0, :cond_0
.line 2
invoke-interface {v0}, Ljava/util/concurrent/ScheduledExecutorService;->shutdownNow()Ljava/util/List;
.line 3
:cond_0
sget-object v0, Lio/reactivex/internal/schedulers/j;->f:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->clear()V
return-void
.end method
.method public static c()V
.locals 1
.line 1
sget-boolean v0, Lio/reactivex/internal/schedulers/j;->b:Z
invoke-static {v0}, Lio/reactivex/internal/schedulers/j;->e(Z)V
return-void
.end method
.method public static d(ZLjava/util/concurrent/ScheduledExecutorService;)V
.locals 1
if-eqz p0, :cond_0
.line 1
instance-of p0, p1, Ljava/util/concurrent/ScheduledThreadPoolExecutor;
if-eqz p0, :cond_0
.line 2
move-object p0, p1
check-cast p0, Ljava/util/concurrent/ScheduledThreadPoolExecutor;
.line 3
sget-object v0, Lio/reactivex/internal/schedulers/j;->f:Ljava/util/Map;
invoke-interface {v0, p0, p1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:cond_0
return-void
.end method
.method public static e(Z)V
.locals 11
if-eqz p0, :cond_2
.line 1
:goto_0
sget-object p0, Lio/reactivex/internal/schedulers/j;->e:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/concurrent/ScheduledExecutorService;
if-eqz v0, :cond_0
return-void
:cond_0
const/4 v1, 0x1
.line 2
new-instance v2, Lio/reactivex/internal/schedulers/RxThreadFactory;
const-string v3, "RxSchedulerPurge"
invoke-direct {v2, v3}, Lio/reactivex/internal/schedulers/RxThreadFactory;-><init>(Ljava/lang/String;)V
invoke-static {v1, v2}, Ljava/util/concurrent/Executors;->newScheduledThreadPool(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
move-result-object v4
.line 3
invoke-virtual {p0, v0, v4}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result p0
if-eqz p0, :cond_1
.line 4
new-instance v5, Lio/reactivex/internal/schedulers/j$b;
invoke-direct {v5}, Lio/reactivex/internal/schedulers/j$b;-><init>()V
sget p0, Lio/reactivex/internal/schedulers/j;->d:I
int-to-long v6, p0
int-to-long v8, p0
sget-object v10, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;
invoke-interface/range {v4 .. v10}, Ljava/util/concurrent/ScheduledExecutorService;->scheduleAtFixedRate(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
return-void
.line 5
:cond_1
invoke-interface {v4}, Ljava/util/concurrent/ScheduledExecutorService;->shutdownNow()Ljava/util/List;
goto :goto_0
:cond_2
return-void
.end method
@@ -0,0 +1,164 @@
.class public final Lio/reactivex/internal/schedulers/k$a;
.super Lkh/h0$c;
.source "SingleScheduler.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/k;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "a"
.end annotation
# instance fields
.field public final a:Ljava/util/concurrent/ScheduledExecutorService;
.field public final b:Lio/reactivex/disposables/a;
.field public volatile c:Z
# direct methods
.method public constructor <init>(Ljava/util/concurrent/ScheduledExecutorService;)V
.locals 0
.line 1
invoke-direct {p0}, Lkh/h0$c;-><init>()V
.line 2
iput-object p1, p0, Lio/reactivex/internal/schedulers/k$a;->a:Ljava/util/concurrent/ScheduledExecutorService;
.line 3
new-instance p1, Lio/reactivex/disposables/a;
invoke-direct {p1}, Lio/reactivex/disposables/a;-><init>()V
iput-object p1, p0, Lio/reactivex/internal/schedulers/k$a;->b:Lio/reactivex/disposables/a;
return-void
.end method
# virtual methods
.method public c(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 3
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.param p4 # Ljava/util/concurrent/TimeUnit;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/k$a;->c:Z
if-eqz v0, :cond_0
.line 2
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.line 3
:cond_0
invoke-static {p1}, Lwh/a;->b0(Ljava/lang/Runnable;)Ljava/lang/Runnable;
move-result-object p1
.line 4
new-instance v0, Lio/reactivex/internal/schedulers/ScheduledRunnable;
iget-object v1, p0, Lio/reactivex/internal/schedulers/k$a;->b:Lio/reactivex/disposables/a;
invoke-direct {v0, p1, v1}, Lio/reactivex/internal/schedulers/ScheduledRunnable;-><init>(Ljava/lang/Runnable;Lqh/a;)V
.line 5
iget-object p1, p0, Lio/reactivex/internal/schedulers/k$a;->b:Lio/reactivex/disposables/a;
invoke-virtual {p1, v0}, Lio/reactivex/disposables/a;->b(Lio/reactivex/disposables/b;)Z
const-wide/16 v1, 0x0
cmp-long p1, p2, v1
if-gtz p1, :cond_1
.line 6
:try_start_0
iget-object p1, p0, Lio/reactivex/internal/schedulers/k$a;->a:Ljava/util/concurrent/ScheduledExecutorService;
invoke-interface {p1, v0}, Ljava/util/concurrent/ScheduledExecutorService;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
move-result-object p1
goto :goto_0
.line 7
:cond_1
iget-object p1, p0, Lio/reactivex/internal/schedulers/k$a;->a:Ljava/util/concurrent/ScheduledExecutorService;
invoke-interface {p1, v0, p2, p3, p4}, Ljava/util/concurrent/ScheduledExecutorService;->schedule(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
move-result-object p1
.line 8
:goto_0
invoke-virtual {v0, p1}, Lio/reactivex/internal/schedulers/ScheduledRunnable;->setFuture(Ljava/util/concurrent/Future;)V
:try_end_0
.catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_0 .. :try_end_0} :catch_0
return-object v0
:catch_0
move-exception p1
.line 9
invoke-virtual {p0}, Lio/reactivex/internal/schedulers/k$a;->dispose()V
.line 10
invoke-static {p1}, Lwh/a;->Y(Ljava/lang/Throwable;)V
.line 11
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.end method
.method public dispose()V
.locals 1
.line 1
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/k$a;->c:Z
if-nez v0, :cond_0
const/4 v0, 0x1
.line 2
iput-boolean v0, p0, Lio/reactivex/internal/schedulers/k$a;->c:Z
.line 3
iget-object v0, p0, Lio/reactivex/internal/schedulers/k$a;->b:Lio/reactivex/disposables/a;
invoke-virtual {v0}, Lio/reactivex/disposables/a;->dispose()V
:cond_0
return-void
.end method
.method public isDisposed()Z
.locals 1
.line 1
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/k$a;->c:Z
return v0
.end method
@@ -0,0 +1,441 @@
.class public final Lio/reactivex/internal/schedulers/k;
.super Lkh/h0;
.source "SingleScheduler.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/reactivex/internal/schedulers/k$a;
}
.end annotation
# static fields
.field public static final d:Ljava/lang/String; = "rx2.single-priority"
.field public static final e:Ljava/lang/String; = "RxSingleScheduler"
.field public static final f:Lio/reactivex/internal/schedulers/RxThreadFactory;
.field public static final g:Ljava/util/concurrent/ScheduledExecutorService;
# instance fields
.field public final b:Ljava/util/concurrent/ThreadFactory;
.field public final c:Ljava/util/concurrent/atomic/AtomicReference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReference<",
"Ljava/util/concurrent/ScheduledExecutorService;",
">;"
}
.end annotation
.end field
# direct methods
.method public static constructor <clinit>()V
.locals 4
const/4 v0, 0x0
.line 1
invoke-static {v0}, Ljava/util/concurrent/Executors;->newScheduledThreadPool(I)Ljava/util/concurrent/ScheduledExecutorService;
move-result-object v0
sput-object v0, Lio/reactivex/internal/schedulers/k;->g:Ljava/util/concurrent/ScheduledExecutorService;
.line 2
invoke-interface {v0}, Ljava/util/concurrent/ScheduledExecutorService;->shutdown()V
const-string v0, "rx2.single-priority"
const/4 v1, 0x5
.line 3
invoke-static {v0, v1}, Ljava/lang/Integer;->getInteger(Ljava/lang/String;I)Ljava/lang/Integer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
const/16 v1, 0xa
.line 4
invoke-static {v1, v0}, Ljava/lang/Math;->min(II)I
move-result v0
const/4 v1, 0x1
invoke-static {v1, v0}, Ljava/lang/Math;->max(II)I
move-result v0
.line 5
new-instance v2, Lio/reactivex/internal/schedulers/RxThreadFactory;
const-string v3, "RxSingleScheduler"
invoke-direct {v2, v3, v0, v1}, Lio/reactivex/internal/schedulers/RxThreadFactory;-><init>(Ljava/lang/String;IZ)V
sput-object v2, Lio/reactivex/internal/schedulers/k;->f:Lio/reactivex/internal/schedulers/RxThreadFactory;
return-void
.end method
.method public constructor <init>()V
.locals 1
.line 1
sget-object v0, Lio/reactivex/internal/schedulers/k;->f:Lio/reactivex/internal/schedulers/RxThreadFactory;
invoke-direct {p0, v0}, Lio/reactivex/internal/schedulers/k;-><init>(Ljava/util/concurrent/ThreadFactory;)V
return-void
.end method
.method public constructor <init>(Ljava/util/concurrent/ThreadFactory;)V
.locals 1
.line 2
invoke-direct {p0}, Lkh/h0;-><init>()V
.line 3
new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;
invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
iput-object v0, p0, Lio/reactivex/internal/schedulers/k;->c:Ljava/util/concurrent/atomic/AtomicReference;
.line 4
iput-object p1, p0, Lio/reactivex/internal/schedulers/k;->b:Ljava/util/concurrent/ThreadFactory;
.line 5
invoke-static {p1}, Lio/reactivex/internal/schedulers/k;->k(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
move-result-object p1
invoke-virtual {v0, p1}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V
return-void
.end method
.method public static k(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
.locals 0
.line 1
invoke-static {p0}, Lio/reactivex/internal/schedulers/j;->a(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
move-result-object p0
return-object p0
.end method
# virtual methods
.method public c()Lkh/h0$c;
.locals 2
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
new-instance v0, Lio/reactivex/internal/schedulers/k$a;
iget-object v1, p0, Lio/reactivex/internal/schedulers/k;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/util/concurrent/ScheduledExecutorService;
invoke-direct {v0, v1}, Lio/reactivex/internal/schedulers/k$a;-><init>(Ljava/util/concurrent/ScheduledExecutorService;)V
return-object v0
.end method
.method public f(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 3
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
new-instance v0, Lio/reactivex/internal/schedulers/ScheduledDirectTask;
invoke-static {p1}, Lwh/a;->b0(Ljava/lang/Runnable;)Ljava/lang/Runnable;
move-result-object p1
invoke-direct {v0, p1}, Lio/reactivex/internal/schedulers/ScheduledDirectTask;-><init>(Ljava/lang/Runnable;)V
const-wide/16 v1, 0x0
cmp-long p1, p2, v1
if-gtz p1, :cond_0
.line 2
:try_start_0
iget-object p1, p0, Lio/reactivex/internal/schedulers/k;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {p1}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/util/concurrent/ScheduledExecutorService;
invoke-interface {p1, v0}, Ljava/util/concurrent/ScheduledExecutorService;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
move-result-object p1
goto :goto_0
.line 3
:cond_0
iget-object p1, p0, Lio/reactivex/internal/schedulers/k;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {p1}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/util/concurrent/ScheduledExecutorService;
invoke-interface {p1, v0, p2, p3, p4}, Ljava/util/concurrent/ScheduledExecutorService;->schedule(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
move-result-object p1
.line 4
:goto_0
invoke-virtual {v0, p1}, Lio/reactivex/internal/schedulers/AbstractDirectTask;->setFuture(Ljava/util/concurrent/Future;)V
:try_end_0
.catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_0 .. :try_end_0} :catch_0
return-object v0
:catch_0
move-exception p1
.line 5
invoke-static {p1}, Lwh/a;->Y(Ljava/lang/Throwable;)V
.line 6
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.end method
.method public g(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 8
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
invoke-static {p1}, Lwh/a;->b0(Ljava/lang/Runnable;)Ljava/lang/Runnable;
move-result-object p1
const-wide/16 v0, 0x0
cmp-long v2, p4, v0
if-gtz v2, :cond_1
.line 2
iget-object p4, p0, Lio/reactivex/internal/schedulers/k;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {p4}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object p4
check-cast p4, Ljava/util/concurrent/ScheduledExecutorService;
.line 3
new-instance p5, Lio/reactivex/internal/schedulers/d;
invoke-direct {p5, p1, p4}, Lio/reactivex/internal/schedulers/d;-><init>(Ljava/lang/Runnable;Ljava/util/concurrent/ExecutorService;)V
cmp-long p1, p2, v0
if-gtz p1, :cond_0
.line 4
:try_start_0
invoke-interface {p4, p5}, Ljava/util/concurrent/ScheduledExecutorService;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
move-result-object p1
goto :goto_0
.line 5
:cond_0
invoke-interface {p4, p5, p2, p3, p6}, Ljava/util/concurrent/ScheduledExecutorService;->schedule(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
move-result-object p1
.line 6
:goto_0
invoke-virtual {p5, p1}, Lio/reactivex/internal/schedulers/d;->b(Ljava/util/concurrent/Future;)V
:try_end_0
.catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_0 .. :try_end_0} :catch_0
return-object p5
:catch_0
move-exception p1
.line 7
invoke-static {p1}, Lwh/a;->Y(Ljava/lang/Throwable;)V
.line 8
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.line 9
:cond_1
new-instance v7, Lio/reactivex/internal/schedulers/ScheduledDirectPeriodicTask;
invoke-direct {v7, p1}, Lio/reactivex/internal/schedulers/ScheduledDirectPeriodicTask;-><init>(Ljava/lang/Runnable;)V
.line 10
:try_start_1
iget-object p1, p0, Lio/reactivex/internal/schedulers/k;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {p1}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object p1
move-object v0, p1
check-cast v0, Ljava/util/concurrent/ScheduledExecutorService;
move-object v1, v7
move-wide v2, p2
move-wide v4, p4
move-object v6, p6
invoke-interface/range {v0 .. v6}, Ljava/util/concurrent/ScheduledExecutorService;->scheduleAtFixedRate(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
move-result-object p1
.line 11
invoke-virtual {v7, p1}, Lio/reactivex/internal/schedulers/AbstractDirectTask;->setFuture(Ljava/util/concurrent/Future;)V
:try_end_1
.catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_1 .. :try_end_1} :catch_1
return-object v7
:catch_1
move-exception p1
.line 12
invoke-static {p1}, Lwh/a;->Y(Ljava/lang/Throwable;)V
.line 13
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.end method
.method public h()V
.locals 2
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/k;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/concurrent/ScheduledExecutorService;
.line 2
sget-object v1, Lio/reactivex/internal/schedulers/k;->g:Ljava/util/concurrent/ScheduledExecutorService;
if-eq v0, v1, :cond_0
.line 3
iget-object v0, p0, Lio/reactivex/internal/schedulers/k;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->getAndSet(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/concurrent/ScheduledExecutorService;
if-eq v0, v1, :cond_0
.line 4
invoke-interface {v0}, Ljava/util/concurrent/ScheduledExecutorService;->shutdownNow()Ljava/util/List;
:cond_0
return-void
.end method
.method public i()V
.locals 3
const/4 v0, 0x0
.line 1
:cond_0
iget-object v1, p0, Lio/reactivex/internal/schedulers/k;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/util/concurrent/ScheduledExecutorService;
.line 2
sget-object v2, Lio/reactivex/internal/schedulers/k;->g:Ljava/util/concurrent/ScheduledExecutorService;
if-eq v1, v2, :cond_2
if-eqz v0, :cond_1
.line 3
invoke-interface {v0}, Ljava/util/concurrent/ScheduledExecutorService;->shutdown()V
:cond_1
return-void
:cond_2
if-nez v0, :cond_3
.line 4
iget-object v0, p0, Lio/reactivex/internal/schedulers/k;->b:Ljava/util/concurrent/ThreadFactory;
invoke-static {v0}, Lio/reactivex/internal/schedulers/k;->k(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
move-result-object v0
.line 5
:cond_3
iget-object v2, p0, Lio/reactivex/internal/schedulers/k;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v2, v1, v0}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_0
return-void
.end method
@@ -0,0 +1,116 @@
.class public final Lio/reactivex/internal/schedulers/l$a;
.super Ljava/lang/Object;
.source "TrampolineScheduler.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/l;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "a"
.end annotation
# instance fields
.field public final a:Ljava/lang/Runnable;
.field public final b:Lio/reactivex/internal/schedulers/l$c;
.field public final c:J
# direct methods
.method public constructor <init>(Ljava/lang/Runnable;Lio/reactivex/internal/schedulers/l$c;J)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lio/reactivex/internal/schedulers/l$a;->a:Ljava/lang/Runnable;
.line 3
iput-object p2, p0, Lio/reactivex/internal/schedulers/l$a;->b:Lio/reactivex/internal/schedulers/l$c;
.line 4
iput-wide p3, p0, Lio/reactivex/internal/schedulers/l$a;->c:J
return-void
.end method
# virtual methods
.method public run()V
.locals 5
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/l$a;->b:Lio/reactivex/internal/schedulers/l$c;
iget-boolean v0, v0, Lio/reactivex/internal/schedulers/l$c;->d:Z
if-nez v0, :cond_1
.line 2
iget-object v0, p0, Lio/reactivex/internal/schedulers/l$a;->b:Lio/reactivex/internal/schedulers/l$c;
sget-object v1, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-virtual {v0, v1}, Lkh/h0$c;->a(Ljava/util/concurrent/TimeUnit;)J
move-result-wide v0
.line 3
iget-wide v2, p0, Lio/reactivex/internal/schedulers/l$a;->c:J
cmp-long v4, v2, v0
if-lez v4, :cond_0
sub-long/2addr v2, v0
.line 4
:try_start_0
invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
:try_end_0
.catch Ljava/lang/InterruptedException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception v0
.line 5
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Thread;->interrupt()V
.line 6
invoke-static {v0}, Lwh/a;->Y(Ljava/lang/Throwable;)V
return-void
.line 7
:cond_0
:goto_0
iget-object v0, p0, Lio/reactivex/internal/schedulers/l$a;->b:Lio/reactivex/internal/schedulers/l$c;
iget-boolean v0, v0, Lio/reactivex/internal/schedulers/l$c;->d:Z
if-nez v0, :cond_1
.line 8
iget-object v0, p0, Lio/reactivex/internal/schedulers/l$a;->a:Ljava/lang/Runnable;
invoke-interface {v0}, Ljava/lang/Runnable;->run()V
:cond_1
return-void
.end method
@@ -0,0 +1,104 @@
.class public final Lio/reactivex/internal/schedulers/l$b;
.super Ljava/lang/Object;
.source "TrampolineScheduler.java"
# interfaces
.implements Ljava/lang/Comparable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/l;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "b"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Ljava/lang/Comparable<",
"Lio/reactivex/internal/schedulers/l$b;",
">;"
}
.end annotation
# instance fields
.field public final a:Ljava/lang/Runnable;
.field public final b:J
.field public final c:I
.field public volatile d:Z
# direct methods
.method public constructor <init>(Ljava/lang/Runnable;Ljava/lang/Long;I)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lio/reactivex/internal/schedulers/l$b;->a:Ljava/lang/Runnable;
.line 3
invoke-virtual {p2}, Ljava/lang/Long;->longValue()J
move-result-wide p1
iput-wide p1, p0, Lio/reactivex/internal/schedulers/l$b;->b:J
.line 4
iput p3, p0, Lio/reactivex/internal/schedulers/l$b;->c:I
return-void
.end method
# virtual methods
.method public a(Lio/reactivex/internal/schedulers/l$b;)I
.locals 4
.line 1
iget-wide v0, p0, Lio/reactivex/internal/schedulers/l$b;->b:J
iget-wide v2, p1, Lio/reactivex/internal/schedulers/l$b;->b:J
invoke-static {v0, v1, v2, v3}, Lio/reactivex/internal/functions/a;->b(JJ)I
move-result v0
if-nez v0, :cond_0
.line 2
iget v0, p0, Lio/reactivex/internal/schedulers/l$b;->c:I
iget p1, p1, Lio/reactivex/internal/schedulers/l$b;->c:I
invoke-static {v0, p1}, Lio/reactivex/internal/functions/a;->a(II)I
move-result p1
return p1
:cond_0
return v0
.end method
.method public bridge synthetic compareTo(Ljava/lang/Object;)I
.locals 0
.line 1
check-cast p1, Lio/reactivex/internal/schedulers/l$b;
invoke-virtual {p0, p1}, Lio/reactivex/internal/schedulers/l$b;->a(Lio/reactivex/internal/schedulers/l$b;)I
move-result p1
return p1
.end method
@@ -0,0 +1,63 @@
.class public final Lio/reactivex/internal/schedulers/l$c$a;
.super Ljava/lang/Object;
.source "TrampolineScheduler.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/l$c;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "a"
.end annotation
# instance fields
.field public final a:Lio/reactivex/internal/schedulers/l$b;
.field public final synthetic b:Lio/reactivex/internal/schedulers/l$c;
# direct methods
.method public constructor <init>(Lio/reactivex/internal/schedulers/l$c;Lio/reactivex/internal/schedulers/l$b;)V
.locals 0
.line 1
iput-object p1, p0, Lio/reactivex/internal/schedulers/l$c$a;->b:Lio/reactivex/internal/schedulers/l$c;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p2, p0, Lio/reactivex/internal/schedulers/l$c$a;->a:Lio/reactivex/internal/schedulers/l$b;
return-void
.end method
# virtual methods
.method public run()V
.locals 2
.line 1
iget-object v0, p0, Lio/reactivex/internal/schedulers/l$c$a;->a:Lio/reactivex/internal/schedulers/l$b;
const/4 v1, 0x1
iput-boolean v1, v0, Lio/reactivex/internal/schedulers/l$b;->d:Z
.line 2
iget-object v0, p0, Lio/reactivex/internal/schedulers/l$c$a;->b:Lio/reactivex/internal/schedulers/l$c;
iget-object v0, v0, Lio/reactivex/internal/schedulers/l$c;->a:Ljava/util/concurrent/PriorityBlockingQueue;
iget-object v1, p0, Lio/reactivex/internal/schedulers/l$c$a;->a:Lio/reactivex/internal/schedulers/l$b;
invoke-virtual {v0, v1}, Ljava/util/concurrent/PriorityBlockingQueue;->remove(Ljava/lang/Object;)Z
return-void
.end method
@@ -0,0 +1,272 @@
.class public final Lio/reactivex/internal/schedulers/l$c;
.super Lkh/h0$c;
.source "TrampolineScheduler.java"
# interfaces
.implements Lio/reactivex/disposables/b;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/l;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "c"
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/reactivex/internal/schedulers/l$c$a;
}
.end annotation
# instance fields
.field public final a:Ljava/util/concurrent/PriorityBlockingQueue;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/PriorityBlockingQueue<",
"Lio/reactivex/internal/schedulers/l$b;",
">;"
}
.end annotation
.end field
.field public final b:Ljava/util/concurrent/atomic/AtomicInteger;
.field public final c:Ljava/util/concurrent/atomic/AtomicInteger;
.field public volatile d:Z
# direct methods
.method public constructor <init>()V
.locals 1
.line 1
invoke-direct {p0}, Lkh/h0$c;-><init>()V
.line 2
new-instance v0, Ljava/util/concurrent/PriorityBlockingQueue;
invoke-direct {v0}, Ljava/util/concurrent/PriorityBlockingQueue;-><init>()V
iput-object v0, p0, Lio/reactivex/internal/schedulers/l$c;->a:Ljava/util/concurrent/PriorityBlockingQueue;
.line 3
new-instance v0, Ljava/util/concurrent/atomic/AtomicInteger;
invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicInteger;-><init>()V
iput-object v0, p0, Lio/reactivex/internal/schedulers/l$c;->b:Ljava/util/concurrent/atomic/AtomicInteger;
.line 4
new-instance v0, Ljava/util/concurrent/atomic/AtomicInteger;
invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicInteger;-><init>()V
iput-object v0, p0, Lio/reactivex/internal/schedulers/l$c;->c:Ljava/util/concurrent/atomic/AtomicInteger;
return-void
.end method
# virtual methods
.method public b(Ljava/lang/Runnable;)Lio/reactivex/disposables/b;
.locals 2
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
sget-object v0, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-virtual {p0, v0}, Lkh/h0$c;->a(Ljava/util/concurrent/TimeUnit;)J
move-result-wide v0
invoke-virtual {p0, p1, v0, v1}, Lio/reactivex/internal/schedulers/l$c;->e(Ljava/lang/Runnable;J)Lio/reactivex/disposables/b;
move-result-object p1
return-object p1
.end method
.method public c(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 2
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.param p4 # Ljava/util/concurrent/TimeUnit;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
sget-object v0, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-virtual {p0, v0}, Lkh/h0$c;->a(Ljava/util/concurrent/TimeUnit;)J
move-result-wide v0
invoke-virtual {p4, p2, p3}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J
move-result-wide p2
add-long/2addr p2, v0
.line 2
new-instance p4, Lio/reactivex/internal/schedulers/l$a;
invoke-direct {p4, p1, p0, p2, p3}, Lio/reactivex/internal/schedulers/l$a;-><init>(Ljava/lang/Runnable;Lio/reactivex/internal/schedulers/l$c;J)V
invoke-virtual {p0, p4, p2, p3}, Lio/reactivex/internal/schedulers/l$c;->e(Ljava/lang/Runnable;J)Lio/reactivex/disposables/b;
move-result-object p1
return-object p1
.end method
.method public dispose()V
.locals 1
const/4 v0, 0x1
.line 1
iput-boolean v0, p0, Lio/reactivex/internal/schedulers/l$c;->d:Z
return-void
.end method
.method public e(Ljava/lang/Runnable;J)Lio/reactivex/disposables/b;
.locals 1
.line 1
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/l$c;->d:Z
if-eqz v0, :cond_0
.line 2
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.line 3
:cond_0
new-instance v0, Lio/reactivex/internal/schedulers/l$b;
invoke-static {p2, p3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p2
iget-object p3, p0, Lio/reactivex/internal/schedulers/l$c;->c:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {p3}, Ljava/util/concurrent/atomic/AtomicInteger;->incrementAndGet()I
move-result p3
invoke-direct {v0, p1, p2, p3}, Lio/reactivex/internal/schedulers/l$b;-><init>(Ljava/lang/Runnable;Ljava/lang/Long;I)V
.line 4
iget-object p1, p0, Lio/reactivex/internal/schedulers/l$c;->a:Ljava/util/concurrent/PriorityBlockingQueue;
invoke-virtual {p1, v0}, Ljava/util/concurrent/PriorityBlockingQueue;->add(Ljava/lang/Object;)Z
.line 5
iget-object p1, p0, Lio/reactivex/internal/schedulers/l$c;->b:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {p1}, Ljava/util/concurrent/atomic/AtomicInteger;->getAndIncrement()I
move-result p1
if-nez p1, :cond_4
const/4 p1, 0x1
.line 6
:cond_1
:goto_0
iget-boolean p2, p0, Lio/reactivex/internal/schedulers/l$c;->d:Z
if-eqz p2, :cond_2
.line 7
iget-object p1, p0, Lio/reactivex/internal/schedulers/l$c;->a:Ljava/util/concurrent/PriorityBlockingQueue;
invoke-virtual {p1}, Ljava/util/concurrent/PriorityBlockingQueue;->clear()V
.line 8
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.line 9
:cond_2
iget-object p2, p0, Lio/reactivex/internal/schedulers/l$c;->a:Ljava/util/concurrent/PriorityBlockingQueue;
invoke-virtual {p2}, Ljava/util/concurrent/PriorityBlockingQueue;->poll()Ljava/lang/Object;
move-result-object p2
check-cast p2, Lio/reactivex/internal/schedulers/l$b;
if-nez p2, :cond_3
.line 10
iget-object p2, p0, Lio/reactivex/internal/schedulers/l$c;->b:Ljava/util/concurrent/atomic/AtomicInteger;
neg-int p1, p1
invoke-virtual {p2, p1}, Ljava/util/concurrent/atomic/AtomicInteger;->addAndGet(I)I
move-result p1
if-nez p1, :cond_1
.line 11
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.line 12
:cond_3
iget-boolean p3, p2, Lio/reactivex/internal/schedulers/l$b;->d:Z
if-nez p3, :cond_1
.line 13
iget-object p2, p2, Lio/reactivex/internal/schedulers/l$b;->a:Ljava/lang/Runnable;
invoke-interface {p2}, Ljava/lang/Runnable;->run()V
goto :goto_0
.line 14
:cond_4
new-instance p1, Lio/reactivex/internal/schedulers/l$c$a;
invoke-direct {p1, p0, v0}, Lio/reactivex/internal/schedulers/l$c$a;-><init>(Lio/reactivex/internal/schedulers/l$c;Lio/reactivex/internal/schedulers/l$b;)V
invoke-static {p1}, Lio/reactivex/disposables/c;->f(Ljava/lang/Runnable;)Lio/reactivex/disposables/b;
move-result-object p1
return-object p1
.end method
.method public isDisposed()Z
.locals 1
.line 1
iget-boolean v0, p0, Lio/reactivex/internal/schedulers/l$c;->d:Z
return v0
.end method
@@ -0,0 +1,131 @@
.class public final Lio/reactivex/internal/schedulers/l;
.super Lkh/h0;
.source "TrampolineScheduler.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/reactivex/internal/schedulers/l$a;,
Lio/reactivex/internal/schedulers/l$b;,
Lio/reactivex/internal/schedulers/l$c;
}
.end annotation
# static fields
.field public static final b:Lio/reactivex/internal/schedulers/l;
# direct methods
.method public static constructor <clinit>()V
.locals 1
.line 1
new-instance v0, Lio/reactivex/internal/schedulers/l;
invoke-direct {v0}, Lio/reactivex/internal/schedulers/l;-><init>()V
sput-object v0, Lio/reactivex/internal/schedulers/l;->b:Lio/reactivex/internal/schedulers/l;
return-void
.end method
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Lkh/h0;-><init>()V
return-void
.end method
.method public static k()Lio/reactivex/internal/schedulers/l;
.locals 1
.line 1
sget-object v0, Lio/reactivex/internal/schedulers/l;->b:Lio/reactivex/internal/schedulers/l;
return-object v0
.end method
# virtual methods
.method public c()Lkh/h0$c;
.locals 1
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
new-instance v0, Lio/reactivex/internal/schedulers/l$c;
invoke-direct {v0}, Lio/reactivex/internal/schedulers/l$c;-><init>()V
return-object v0
.end method
.method public e(Ljava/lang/Runnable;)Lio/reactivex/disposables/b;
.locals 0
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
invoke-static {p1}, Lwh/a;->b0(Ljava/lang/Runnable;)Ljava/lang/Runnable;
move-result-object p1
invoke-interface {p1}, Ljava/lang/Runnable;->run()V
.line 2
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.end method
.method public f(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/b;
.locals 0
.param p1 # Ljava/lang/Runnable;
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.end param
.annotation build Lio/reactivex/annotations/NonNull;
.end annotation
.line 1
:try_start_0
invoke-virtual {p4, p2, p3}, Ljava/util/concurrent/TimeUnit;->sleep(J)V
.line 2
invoke-static {p1}, Lwh/a;->b0(Ljava/lang/Runnable;)Ljava/lang/Runnable;
move-result-object p1
invoke-interface {p1}, Ljava/lang/Runnable;->run()V
:try_end_0
.catch Ljava/lang/InterruptedException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception p1
.line 3
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object p2
invoke-virtual {p2}, Ljava/lang/Thread;->interrupt()V
.line 4
invoke-static {p1}, Lwh/a;->Y(Ljava/lang/Throwable;)V
.line 5
:goto_0
sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
return-object p1
.end method