c.smali

.class final Lrx/internal/schedulers/c;
.super Lrx/k;
.source "CachedThreadScheduler.java"

# interfaces
.implements Lrx/b/a;


# instance fields
.field private final cbF:Lrx/g/b;

.field private final cbG:Lrx/internal/schedulers/b;

.field private final cbH:Lrx/internal/schedulers/d;

.field private once:Ljava/util/concurrent/atomic/AtomicBoolean;


# direct methods
.method constructor <init>(Lrx/internal/schedulers/b;)V
    .registers 3

    .prologue
    .line 185
    invoke-direct {p0}, Lrx/k;-><init>()V

    .line 180
    new-instance v0, Lrx/g/b;

    invoke-direct {v0}, Lrx/g/b;-><init>()V

    iput-object v0, p0, Lrx/internal/schedulers/c;->cbF:Lrx/g/b;

    .line 186
    iput-object p1, p0, Lrx/internal/schedulers/c;->cbG:Lrx/internal/schedulers/b;

    .line 187
    new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean;

    invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;-><init>()V

    iput-object v0, p0, Lrx/internal/schedulers/c;->once:Ljava/util/concurrent/atomic/AtomicBoolean;

    .line 188
    invoke-virtual {p1}, Lrx/internal/schedulers/b;->SU()Lrx/internal/schedulers/d;

    move-result-object v0

    iput-object v0, p0, Lrx/internal/schedulers/c;->cbH:Lrx/internal/schedulers/d;

    .line 189
    return-void
.end method


# virtual methods
.method public final b(Lrx/b/a;)Lrx/p;
    .registers 7

    .prologue
    .line 214
    .line 2219
    iget-object v0, p0, Lrx/internal/schedulers/c;->cbF:Lrx/g/b;

    invoke-virtual {v0}, Lrx/g/b;->isUnsubscribed()Z

    move-result v0

    if-eqz v0, :cond_d

    .line 2221
    invoke-static {}, Lrx/g/e;->TA()Lrx/p;

    move-result-object v0

    :goto_c
    return-object v0

    .line 2224
    :cond_d
    iget-object v0, p0, Lrx/internal/schedulers/c;->cbH:Lrx/internal/schedulers/d;

    new-instance v1, Lrx/internal/schedulers/c$1;

    invoke-direct {v1, p0, p1}, Lrx/internal/schedulers/c$1;-><init>(Lrx/internal/schedulers/c;Lrx/b/a;)V

    const-wide/16 v2, 0x0

    const/4 v4, 0x0

    invoke-virtual {v0, v1, v2, v3, v4}, Lrx/internal/schedulers/d;->a(Lrx/b/a;JLjava/util/concurrent/TimeUnit;)Lrx/internal/schedulers/ScheduledAction;

    move-result-object v0

    .line 2233
    iget-object v1, p0, Lrx/internal/schedulers/c;->cbF:Lrx/g/b;

    invoke-virtual {v1, v0}, Lrx/g/b;->add(Lrx/p;)V

    .line 2234
    iget-object v1, p0, Lrx/internal/schedulers/c;->cbF:Lrx/g/b;

    invoke-virtual {v0, v1}, Lrx/internal/schedulers/ScheduledAction;->addParent(Lrx/g/b;)V

    goto :goto_c
.end method

.method public final call()V
    .registers 7

    .prologue
    .line 204
    iget-object v0, p0, Lrx/internal/schedulers/c;->cbG:Lrx/internal/schedulers/b;

    iget-object v1, p0, Lrx/internal/schedulers/c;->cbH:Lrx/internal/schedulers/d;

    .line 1129
    invoke-static {}, Ljava/lang/System;->nanoTime()J

    move-result-wide v2

    .line 1105
    iget-wide v4, v0, Lrx/internal/schedulers/b;->bSB:J

    add-long/2addr v2, v4

    .line 1252
    iput-wide v2, v1, Lrx/internal/schedulers/d;->bSJ:J

    .line 1107
    iget-object v0, v0, Lrx/internal/schedulers/b;->bSC:Ljava/util/concurrent/ConcurrentLinkedQueue;

    invoke-virtual {v0, v1}, Ljava/util/concurrent/ConcurrentLinkedQueue;->offer(Ljava/lang/Object;)Z

    .line 205
    return-void
.end method

.method public final isUnsubscribed()Z
    .registers 2

    .prologue
    .line 209
    iget-object v0, p0, Lrx/internal/schedulers/c;->cbF:Lrx/g/b;

    invoke-virtual {v0}, Lrx/g/b;->isUnsubscribed()Z

    move-result v0

    return v0
.end method

.method public final unsubscribe()V
    .registers 4

    .prologue
    .line 193
    iget-object v0, p0, Lrx/internal/schedulers/c;->once: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_f

    .line 197
    iget-object v0, p0, Lrx/internal/schedulers/c;->cbH:Lrx/internal/schedulers/d;

    invoke-virtual {v0, p0}, Lrx/internal/schedulers/d;->b(Lrx/b/a;)Lrx/p;

    .line 199
    :cond_f
    iget-object v0, p0, Lrx/internal/schedulers/c;->cbF:Lrx/g/b;

    invoke-virtual {v0}, Lrx/g/b;->unsubscribe()V

    .line 200
    return-void
.end method