UnicastSubject.smali

.class public final Lio/reactivex/subjects/UnicastSubject;
.super Lio/reactivex/subjects/b;
.source "UnicastSubject.java"


# annotations
.annotation system Ldalvik/annotation/Signature;
    value = {
        "<T:",
        "Ljava/lang/Object;",
        ">",
        "Lio/reactivex/subjects/b",
        "<TT;>;"
    }
.end annotation


# instance fields
.field final actual:Ljava/util/concurrent/atomic/AtomicReference;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/concurrent/atomic/AtomicReference",
            "<",
            "Lio/reactivex/r",
            "<-TT;>;>;"
        }
    .end annotation
.end field

.field private bTO:Ljava/util/concurrent/atomic/AtomicReference;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/concurrent/atomic/AtomicReference",
            "<",
            "Ljava/lang/Runnable;",
            ">;"
        }
    .end annotation
.end field

.field final bTP:Lio/reactivex/internal/observers/BasicIntQueueDisposable;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Lio/reactivex/internal/observers/BasicIntQueueDisposable",
            "<TT;>;"
        }
    .end annotation
.end field

.field bTQ:Z

.field private delayError:Z

.field volatile disposed:Z

.field private volatile done:Z

.field private error:Ljava/lang/Throwable;

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

.field final queue:Lio/reactivex/internal/queue/a;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Lio/reactivex/internal/queue/a",
            "<TT;>;"
        }
    .end annotation
.end field


# direct methods
.method private constructor <init>(I)V
    .registers 4

    .prologue
    .line 259
    invoke-direct {p0}, Lio/reactivex/subjects/b;-><init>()V

    .line 260
    new-instance v0, Lio/reactivex/internal/queue/a;

    const-string v1, "capacityHint"

    invoke-static {p1, v1}, Lio/reactivex/internal/functions/aj;->q(ILjava/lang/String;)I

    move-result v1

    invoke-direct {v0, v1}, Lio/reactivex/internal/queue/a;-><init>(I)V

    iput-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->queue:Lio/reactivex/internal/queue/a;

    .line 261
    new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;

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

    iput-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->bTO:Ljava/util/concurrent/atomic/AtomicReference;

    .line 262
    const/4 v0, 0x1

    iput-boolean v0, p0, Lio/reactivex/subjects/UnicastSubject;->delayError:Z

    .line 263
    new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;

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

    iput-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->actual:Ljava/util/concurrent/atomic/AtomicReference;

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

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

    iput-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->once:Ljava/util/concurrent/atomic/AtomicBoolean;

    .line 265
    new-instance v0, Lio/reactivex/subjects/UnicastSubject$UnicastQueueDisposable;

    invoke-direct {v0, p0}, Lio/reactivex/subjects/UnicastSubject$UnicastQueueDisposable;-><init>(Lio/reactivex/subjects/UnicastSubject;)V

    iput-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->bTP:Lio/reactivex/internal/observers/BasicIntQueueDisposable;

    .line 266
    return-void
.end method

.method private constructor <init>(ILjava/lang/Runnable;)V
    .registers 5

    .prologue
    .line 288
    invoke-direct {p0}, Lio/reactivex/subjects/b;-><init>()V

    .line 289
    new-instance v0, Lio/reactivex/internal/queue/a;

    const-string v1, "capacityHint"

    invoke-static {p1, v1}, Lio/reactivex/internal/functions/aj;->q(ILjava/lang/String;)I

    move-result v1

    invoke-direct {v0, v1}, Lio/reactivex/internal/queue/a;-><init>(I)V

    iput-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->queue:Lio/reactivex/internal/queue/a;

    .line 290
    new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;

    const-string v1, "onTerminate"

    invoke-static {p2, v1}, Lio/reactivex/internal/functions/aj;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;-><init>(Ljava/lang/Object;)V

    iput-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->bTO:Ljava/util/concurrent/atomic/AtomicReference;

    .line 291
    const/4 v0, 0x1

    iput-boolean v0, p0, Lio/reactivex/subjects/UnicastSubject;->delayError:Z

    .line 292
    new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;

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

    iput-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->actual:Ljava/util/concurrent/atomic/AtomicReference;

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

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

    iput-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->once:Ljava/util/concurrent/atomic/AtomicBoolean;

    .line 294
    new-instance v0, Lio/reactivex/subjects/UnicastSubject$UnicastQueueDisposable;

    invoke-direct {v0, p0}, Lio/reactivex/subjects/UnicastSubject$UnicastQueueDisposable;-><init>(Lio/reactivex/subjects/UnicastSubject;)V

    iput-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->bTP:Lio/reactivex/internal/observers/BasicIntQueueDisposable;

    .line 295
    return-void
.end method

.method public static Qj()Lio/reactivex/subjects/UnicastSubject;
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">()",
            "Lio/reactivex/subjects/UnicastSubject",
            "<TT;>;"
        }
    .end annotation

    .prologue
    .line 184
    new-instance v0, Lio/reactivex/subjects/UnicastSubject;

    invoke-static {}, Lio/reactivex/subjects/UnicastSubject;->bufferSize()I

    move-result v1

    invoke-direct {v0, v1}, Lio/reactivex/subjects/UnicastSubject;-><init>(I)V

    return-object v0
.end method

.method public static a(ILjava/lang/Runnable;)Lio/reactivex/subjects/UnicastSubject;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(I",
            "Ljava/lang/Runnable;",
            ")",
            "Lio/reactivex/subjects/UnicastSubject",
            "<TT;>;"
        }
    .end annotation

    .prologue
    .line 212
    new-instance v0, Lio/reactivex/subjects/UnicastSubject;

    invoke-direct {v0, p0, p1}, Lio/reactivex/subjects/UnicastSubject;-><init>(ILjava/lang/Runnable;)V

    return-object v0
.end method

.method private a(Lio/reactivex/r;)V
    .registers 4
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lio/reactivex/r",
            "<-TT;>;)V"
        }
    .end annotation

    .prologue
    .line 446
    iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->actual:Ljava/util/concurrent/atomic/AtomicReference;

    const/4 v1, 0x0

    invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V

    .line 447
    iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->error:Ljava/lang/Throwable;

    .line 448
    if-eqz v0, :cond_e

    .line 449
    invoke-interface {p1, v0}, Lio/reactivex/r;->onError(Ljava/lang/Throwable;)V

    .line 453
    :goto_d
    return-void

    .line 451
    :cond_e
    invoke-interface {p1}, Lio/reactivex/r;->onComplete()V

    goto :goto_d
.end method

.method private a(Lio/reactivex/internal/a/g;Lio/reactivex/r;)Z
    .registers 6
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lio/reactivex/internal/a/g",
            "<TT;>;",
            "Lio/reactivex/r",
            "<-TT;>;)Z"
        }
    .end annotation

    .prologue
    .line 456
    iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->error:Ljava/lang/Throwable;

    .line 457
    if-eqz v0, :cond_12

    .line 458
    iget-object v1, p0, Lio/reactivex/subjects/UnicastSubject;->actual:Ljava/util/concurrent/atomic/AtomicReference;

    const/4 v2, 0x0

    invoke-virtual {v1, v2}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V

    .line 459
    invoke-interface {p1}, Lio/reactivex/internal/a/g;->clear()V

    .line 460
    invoke-interface {p2, v0}, Lio/reactivex/r;->onError(Ljava/lang/Throwable;)V

    .line 461
    const/4 v0, 0x1

    .line 463
    :goto_11
    return v0

    :cond_12
    const/4 v0, 0x0

    goto :goto_11
.end method

.method private drain()V
    .registers 12

    .prologue
    const/4 v10, 0x0

    const/4 v2, 0x0

    const/4 v1, 0x1

    .line 468
    iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->bTP:Lio/reactivex/internal/observers/BasicIntQueueDisposable;

    invoke-virtual {v0}, Lio/reactivex/internal/observers/BasicIntQueueDisposable;->getAndIncrement()I

    move-result v0

    if-eqz v0, :cond_c

    .line 2392
    :cond_b
    :goto_b
    return-void

    .line 472
    :cond_c
    iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->actual: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/r;

    move-object v6, v0

    move v0, v1

    .line 477
    :goto_16
    if-eqz v6, :cond_9a

    .line 478
    iget-boolean v0, p0, Lio/reactivex/subjects/UnicastSubject;->bTQ:Z

    if-eqz v0, :cond_51

    .line 1413
    iget-object v3, p0, Lio/reactivex/subjects/UnicastSubject;->queue:Lio/reactivex/internal/queue/a;

    .line 1414
    iget-boolean v0, p0, Lio/reactivex/subjects/UnicastSubject;->delayError:Z

    if-nez v0, :cond_30

    move v0, v1

    .line 1418
    :cond_23
    :goto_23
    iget-boolean v2, p0, Lio/reactivex/subjects/UnicastSubject;->disposed:Z

    if-eqz v2, :cond_32

    .line 1419
    iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->actual:Ljava/util/concurrent/atomic/AtomicReference;

    invoke-virtual {v0, v10}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V

    .line 1420
    invoke-virtual {v3}, Lio/reactivex/internal/queue/a;->clear()V

    goto :goto_b

    :cond_30
    move v0, v2

    .line 1414
    goto :goto_23

    .line 1423
    :cond_32
    iget-boolean v2, p0, Lio/reactivex/subjects/UnicastSubject;->done:Z

    .line 1425
    if-eqz v0, :cond_3e

    if-eqz v2, :cond_3e

    .line 1426
    invoke-direct {p0, v3, v6}, Lio/reactivex/subjects/UnicastSubject;->a(Lio/reactivex/internal/a/g;Lio/reactivex/r;)Z

    move-result v4

    if-nez v4, :cond_b

    .line 1431
    :cond_3e
    invoke-interface {v6, v10}, Lio/reactivex/r;->onNext(Ljava/lang/Object;)V

    .line 1433
    if-eqz v2, :cond_47

    .line 1434
    invoke-direct {p0, v6}, Lio/reactivex/subjects/UnicastSubject;->a(Lio/reactivex/r;)V

    goto :goto_b

    .line 1438
    :cond_47
    iget-object v2, p0, Lio/reactivex/subjects/UnicastSubject;->bTP:Lio/reactivex/internal/observers/BasicIntQueueDisposable;

    neg-int v1, v1

    invoke-virtual {v2, v1}, Lio/reactivex/internal/observers/BasicIntQueueDisposable;->addAndGet(I)I

    move-result v1

    .line 1439
    if-nez v1, :cond_23

    goto :goto_b

    .line 2365
    :cond_51
    iget-object v7, p0, Lio/reactivex/subjects/UnicastSubject;->queue:Lio/reactivex/internal/queue/a;

    .line 2366
    iget-boolean v0, p0, Lio/reactivex/subjects/UnicastSubject;->delayError:Z

    if-nez v0, :cond_67

    move v0, v1

    :goto_58
    move v3, v1

    move v4, v1

    .line 2371
    :cond_5a
    :goto_5a
    iget-boolean v5, p0, Lio/reactivex/subjects/UnicastSubject;->disposed:Z

    if-eqz v5, :cond_69

    .line 2372
    iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->actual:Ljava/util/concurrent/atomic/AtomicReference;

    invoke-virtual {v0, v10}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V

    .line 2373
    invoke-interface {v7}, Lio/reactivex/internal/a/g;->clear()V

    goto :goto_b

    :cond_67
    move v0, v2

    .line 2366
    goto :goto_58

    .line 2377
    :cond_69
    iget-boolean v8, p0, Lio/reactivex/subjects/UnicastSubject;->done:Z

    .line 2378
    iget-object v5, p0, Lio/reactivex/subjects/UnicastSubject;->queue:Lio/reactivex/internal/queue/a;

    invoke-virtual {v5}, Lio/reactivex/internal/queue/a;->poll()Ljava/lang/Object;

    move-result-object v9

    .line 2379
    if-nez v9, :cond_87

    move v5, v1

    .line 2381
    :goto_74
    if-eqz v8, :cond_89

    .line 2382
    if-eqz v0, :cond_81

    if-eqz v3, :cond_81

    .line 2383
    invoke-direct {p0, v7, v6}, Lio/reactivex/subjects/UnicastSubject;->a(Lio/reactivex/internal/a/g;Lio/reactivex/r;)Z

    move-result v3

    if-nez v3, :cond_b

    move v3, v2

    .line 2390
    :cond_81
    if-eqz v5, :cond_89

    .line 2391
    invoke-direct {p0, v6}, Lio/reactivex/subjects/UnicastSubject;->a(Lio/reactivex/r;)V

    goto :goto_b

    :cond_87
    move v5, v2

    .line 2379
    goto :goto_74

    .line 2396
    :cond_89
    if-nez v5, :cond_8f

    .line 2400
    invoke-interface {v6, v9}, Lio/reactivex/r;->onNext(Ljava/lang/Object;)V

    goto :goto_5a

    .line 2403
    :cond_8f
    iget-object v5, p0, Lio/reactivex/subjects/UnicastSubject;->bTP:Lio/reactivex/internal/observers/BasicIntQueueDisposable;

    neg-int v4, v4

    invoke-virtual {v5, v4}, Lio/reactivex/internal/observers/BasicIntQueueDisposable;->addAndGet(I)I

    move-result v4

    .line 2404
    if-nez v4, :cond_5a

    goto/16 :goto_b

    .line 486
    :cond_9a
    iget-object v3, p0, Lio/reactivex/subjects/UnicastSubject;->bTP:Lio/reactivex/internal/observers/BasicIntQueueDisposable;

    neg-int v0, v0

    invoke-virtual {v3, v0}, Lio/reactivex/internal/observers/BasicIntQueueDisposable;->addAndGet(I)I

    move-result v3

    .line 487
    if-eqz v3, :cond_b

    .line 491
    iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->actual: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/r;

    move-object v6, v0

    move v0, v3

    goto/16 :goto_16
.end method

.method public static fj(I)Lio/reactivex/subjects/UnicastSubject;
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(I)",
            "Lio/reactivex/subjects/UnicastSubject",
            "<TT;>;"
        }
    .end annotation

    .prologue
    .line 195
    new-instance v0, Lio/reactivex/subjects/UnicastSubject;

    invoke-direct {v0, p0}, Lio/reactivex/subjects/UnicastSubject;-><init>(I)V

    return-object v0
.end method


# virtual methods
.method final Qk()V
    .registers 4

    .prologue
    .line 313
    iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->bTO: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/lang/Runnable;

    .line 314
    if-eqz v0, :cond_16

    iget-object v1, p0, Lio/reactivex/subjects/UnicastSubject;->bTO:Ljava/util/concurrent/atomic/AtomicReference;

    const/4 v2, 0x0

    invoke-virtual {v1, v0, v2}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z

    move-result v1

    if-eqz v1, :cond_16

    .line 315
    invoke-interface {v0}, Ljava/lang/Runnable;->run()V

    .line 317
    :cond_16
    return-void
.end method

.method public final onComplete()V
    .registers 2

    .prologue
    .line 353
    iget-boolean v0, p0, Lio/reactivex/subjects/UnicastSubject;->done:Z

    if-nez v0, :cond_8

    iget-boolean v0, p0, Lio/reactivex/subjects/UnicastSubject;->disposed:Z

    if-eqz v0, :cond_9

    .line 361
    :cond_8
    :goto_8
    return-void

    .line 356
    :cond_9
    const/4 v0, 0x1

    iput-boolean v0, p0, Lio/reactivex/subjects/UnicastSubject;->done:Z

    .line 358
    invoke-virtual {p0}, Lio/reactivex/subjects/UnicastSubject;->Qk()V

    .line 360
    invoke-direct {p0}, Lio/reactivex/subjects/UnicastSubject;->drain()V

    goto :goto_8
.end method

.method public final onError(Ljava/lang/Throwable;)V
    .registers 3

    .prologue
    .line 338
    const-string v0, "onError called with null. Null values are generally not allowed in 2.x operators and sources."

    invoke-static {p1, v0}, Lio/reactivex/internal/functions/aj;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;

    .line 339
    iget-boolean v0, p0, Lio/reactivex/subjects/UnicastSubject;->done:Z

    if-nez v0, :cond_d

    iget-boolean v0, p0, Lio/reactivex/subjects/UnicastSubject;->disposed:Z

    if-eqz v0, :cond_11

    .line 340
    :cond_d
    invoke-static {p1}, Lio/reactivex/d/a;->onError(Ljava/lang/Throwable;)V

    .line 349
    :goto_10
    return-void

    .line 343
    :cond_11
    iput-object p1, p0, Lio/reactivex/subjects/UnicastSubject;->error:Ljava/lang/Throwable;

    .line 344
    const/4 v0, 0x1

    iput-boolean v0, p0, Lio/reactivex/subjects/UnicastSubject;->done:Z

    .line 346
    invoke-virtual {p0}, Lio/reactivex/subjects/UnicastSubject;->Qk()V

    .line 348
    invoke-direct {p0}, Lio/reactivex/subjects/UnicastSubject;->drain()V

    goto :goto_10
.end method

.method public final onNext(Ljava/lang/Object;)V
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(TT;)V"
        }
    .end annotation

    .prologue
    .line 328
    const-string v0, "onNext called with null. Null values are generally not allowed in 2.x operators and sources."

    invoke-static {p1, v0}, Lio/reactivex/internal/functions/aj;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;

    .line 329
    iget-boolean v0, p0, Lio/reactivex/subjects/UnicastSubject;->done:Z

    if-nez v0, :cond_d

    iget-boolean v0, p0, Lio/reactivex/subjects/UnicastSubject;->disposed:Z

    if-eqz v0, :cond_e

    .line 334
    :cond_d
    :goto_d
    return-void

    .line 332
    :cond_e
    iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->queue:Lio/reactivex/internal/queue/a;

    invoke-virtual {v0, p1}, Lio/reactivex/internal/queue/a;->offer(Ljava/lang/Object;)Z

    .line 333
    invoke-direct {p0}, Lio/reactivex/subjects/UnicastSubject;->drain()V

    goto :goto_d
.end method

.method public final onSubscribe(Lio/reactivex/disposables/b;)V
    .registers 3

    .prologue
    .line 321
    iget-boolean v0, p0, Lio/reactivex/subjects/UnicastSubject;->done:Z

    if-nez v0, :cond_8

    iget-boolean v0, p0, Lio/reactivex/subjects/UnicastSubject;->disposed:Z

    if-eqz v0, :cond_b

    .line 322
    :cond_8
    invoke-interface {p1}, Lio/reactivex/disposables/b;->dispose()V

    .line 324
    :cond_b
    return-void
.end method

.method protected final subscribeActual(Lio/reactivex/r;)V
    .registers 5
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lio/reactivex/r",
            "<-TT;>;)V"
        }
    .end annotation

    .prologue
    .line 299
    iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->once:Ljava/util/concurrent/atomic/AtomicBoolean;

    invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z

    move-result v0

    if-nez v0, :cond_2b

    iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->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_2b

    .line 300
    iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->bTP:Lio/reactivex/internal/observers/BasicIntQueueDisposable;

    invoke-interface {p1, v0}, Lio/reactivex/r;->onSubscribe(Lio/reactivex/disposables/b;)V

    .line 301
    iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->actual:Ljava/util/concurrent/atomic/AtomicReference;

    invoke-virtual {v0, p1}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V

    .line 302
    iget-boolean v0, p0, Lio/reactivex/subjects/UnicastSubject;->disposed:Z

    if-eqz v0, :cond_27

    .line 303
    iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject;->actual:Ljava/util/concurrent/atomic/AtomicReference;

    const/4 v1, 0x0

    invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V

    .line 310
    :goto_26
    return-void

    .line 306
    :cond_27
    invoke-direct {p0}, Lio/reactivex/subjects/UnicastSubject;->drain()V

    goto :goto_26

    .line 308
    :cond_2b
    new-instance v0, Ljava/lang/IllegalStateException;

    const-string v1, "Only a single observer allowed."

    invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    invoke-static {v0, p1}, Lio/reactivex/internal/disposables/EmptyDisposable;->error(Ljava/lang/Throwable;Lio/reactivex/r;)V

    goto :goto_26
.end method