FlowablePublishMulticast$MulticastProcessor.smali
.class final Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;
.super Lio/reactivex/Flowable;
.source "FlowablePublishMulticast.java"
# interfaces
.implements Lio/reactivex/FlowableSubscriber;
.implements Lio/reactivex/disposables/Disposable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x18
name = "MulticastProcessor"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Lio/reactivex/Flowable<",
"TT;>;",
"Lio/reactivex/FlowableSubscriber<",
"TT;>;",
"Lio/reactivex/disposables/Disposable;"
}
.end annotation
# static fields
.field static final EMPTY:[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
.field static final TERMINATED:[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
# instance fields
.field consumed:I
.field final delayError:Z
.field volatile done:Z
.field error:Ljava/lang/Throwable;
.field final limit:I
.field final prefetch:I
.field volatile queue:Lio/reactivex/internal/fuseable/SimpleQueue;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lio/reactivex/internal/fuseable/SimpleQueue<",
"TT;>;"
}
.end annotation
.end field
.field final s:Ljava/util/concurrent/atomic/AtomicReference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReference<",
"Lorg/reactivestreams/Subscription;",
">;"
}
.end annotation
.end field
.field sourceMode:I
.field final subscribers:Ljava/util/concurrent/atomic/AtomicReference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReference<",
"[",
"Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<",
"TT;>;>;"
}
.end annotation
.end field
.field final wip:Ljava/util/concurrent/atomic/AtomicInteger;
# direct methods
.method static constructor <clinit>()V
.registers 2
.line 130
const/4 v0, 0x0
new-array v1, v0, [Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
sput-object v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->EMPTY:[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
.line 133
new-array v0, v0, [Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
sput-object v0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->TERMINATED:[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
return-void
.end method
.method constructor <init>(IZ)V
.registers 5
.param p1, "prefetch" # I
.param p2, "delayError" # Z
.line 157
.local p0, "this":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor<TT;>;"
invoke-direct {p0}, Lio/reactivex/Flowable;-><init>()V
.line 158
iput p1, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->prefetch:I
.line 159
shr-int/lit8 v0, p1, 0x2
sub-int v0, p1, v0
iput v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->limit:I
.line 160
iput-boolean p2, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->delayError:Z
.line 161
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/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->wip:Ljava/util/concurrent/atomic/AtomicInteger;
.line 162
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/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->s:Ljava/util/concurrent/atomic/AtomicReference;
.line 163
new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;
sget-object v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->EMPTY:[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
invoke-direct {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;-><init>(Ljava/lang/Object;)V
iput-object v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->subscribers:Ljava/util/concurrent/atomic/AtomicReference;
.line 164
return-void
.end method
# virtual methods
.method add(Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;)Z
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<",
"TT;>;)Z"
}
.end annotation
.line 245
.local p0, "this":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor<TT;>;"
.local p1, "s":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
:goto_0
iget-object v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->subscribers: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/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
.line 246
.local v0, "current":[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
sget-object v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->TERMINATED:[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
const/4 v2, 0x0
if-ne v0, v1, :cond_e
.line 247
return v2
.line 249
:cond_e
array-length v1, v0
.line 251
.local v1, "n":I
add-int/lit8 v3, v1, 0x1
new-array v3, v3, [Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
.line 252
.local v3, "next":[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
invoke-static {v0, v2, v3, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 253
aput-object p1, v3, v1
.line 254
iget-object v2, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->subscribers:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v2, v0, v3}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_22
.line 255
const/4 v2, 0x1
return v2
.line 257
.end local v0 # "current":[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
.end local v1 # "n":I
.end local v3 # "next":[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
:cond_22
goto :goto_0
.end method
.method completeAll()V
.registers 10
.line 456
.local p0, "this":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor<TT;>;"
iget-object v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->subscribers:Ljava/util/concurrent/atomic/AtomicReference;
sget-object v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->TERMINATED:[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->getAndSet(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
array-length v1, v0
const/4 v2, 0x0
:goto_c
if-ge v2, v1, :cond_22
aget-object v3, v0, v2
.line 457
.local v3, "ms":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
invoke-virtual {v3}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;->get()J
move-result-wide v4
const-wide/high16 v6, -0x8000000000000000L
cmp-long v8, v4, v6
if-eqz v8, :cond_1f
.line 458
iget-object v4, v3, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;->actual:Lorg/reactivestreams/Subscriber;
invoke-interface {v4}, Lorg/reactivestreams/Subscriber;->onComplete()V
.line 456
.end local v3 # "ms":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
:cond_1f
add-int/lit8 v2, v2, 0x1
goto :goto_c
.line 461
:cond_22
return-void
.end method
.method public dispose()V
.registers 2
.line 197
.local p0, "this":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor<TT;>;"
iget-object v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->s:Ljava/util/concurrent/atomic/AtomicReference;
invoke-static {v0}, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->cancel(Ljava/util/concurrent/atomic/AtomicReference;)Z
.line 198
iget-object v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->wip:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->getAndIncrement()I
move-result v0
if-nez v0, :cond_14
.line 199
iget-object v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->queue:Lio/reactivex/internal/fuseable/SimpleQueue;
.line 200
.local v0, "q":Lio/reactivex/internal/fuseable/SimpleQueue;, "Lio/reactivex/internal/fuseable/SimpleQueue<TT;>;"
if-eqz v0, :cond_14
.line 201
invoke-interface {v0}, Lio/reactivex/internal/fuseable/SimpleQueue;->clear()V
.line 204
.end local v0 # "q":Lio/reactivex/internal/fuseable/SimpleQueue;, "Lio/reactivex/internal/fuseable/SimpleQueue<TT;>;"
:cond_14
return-void
.end method
.method drain()V
.registers 27
.line 315
.local p0, "this":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor<TT;>;"
move-object/from16 v1, p0
iget-object v0, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->wip:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->getAndIncrement()I
move-result v0
if-eqz v0, :cond_b
.line 316
return-void
.line 319
:cond_b
const/4 v0, 0x1
.line 321
.local v0, "missed":I
iget-object v2, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->queue:Lio/reactivex/internal/fuseable/SimpleQueue;
.line 323
.local v2, "q":Lio/reactivex/internal/fuseable/SimpleQueue;, "Lio/reactivex/internal/fuseable/SimpleQueue<TT;>;"
iget v3, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->consumed:I
.line 324
.local v3, "upstreamConsumed":I
iget v4, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->limit:I
.line 325
.local v4, "localLimit":I
iget v5, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->sourceMode:I
const/4 v7, 0x1
if-eq v5, v7, :cond_19
const/4 v5, 0x1
goto :goto_1a
:cond_19
const/4 v5, 0x0
:goto_1a
move-object/from16 v25, v2
move v2, v0
move v0, v3
move-object/from16 v3, v25
.line 328
.local v0, "upstreamConsumed":I
.local v2, "missed":I
.local v3, "q":Lio/reactivex/internal/fuseable/SimpleQueue;, "Lio/reactivex/internal/fuseable/SimpleQueue<TT;>;"
.local v5, "canRequest":Z
:goto_20
iget-object v8, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->subscribers:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v8}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v8
check-cast v8, [Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
.line 330
.local v8, "array":[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
array-length v9, v8
.line 332
.local v9, "n":I
if-eqz v3, :cond_129
if-eqz v9, :cond_129
.line 333
const-wide v10, 0x7fffffffffffffffL
.line 335
.local v10, "r":J
array-length v12, v8
const/4 v13, 0x0
:goto_34
const-wide/high16 v14, -0x8000000000000000L
if-ge v13, v12, :cond_4b
aget-object v16, v8, v13
.line 336
.local v16, "ms":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
invoke-virtual/range {v16 .. v16}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;->get()J
move-result-wide v17
.line 337
.local v17, "u":J
cmp-long v19, v17, v14
if-eqz v19, :cond_48
.line 338
cmp-long v14, v10, v17
if-lez v14, :cond_48
.line 339
move-wide/from16 v10, v17
.line 335
.end local v16 # "ms":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
.end local v17 # "u":J
:cond_48
add-int/lit8 v13, v13, 0x1
goto :goto_34
.line 344
:cond_4b
const-wide/16 v12, 0x0
move-wide v6, v12
move v12, v0
.line 345
.end local v0 # "upstreamConsumed":I
.local v6, "e":J
.local v12, "upstreamConsumed":I
:goto_4f
cmp-long v0, v6, v10
if-eqz v0, :cond_e7
.line 346
invoke-virtual/range {p0 .. p0}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->isDisposed()Z
move-result v0
if-eqz v0, :cond_5d
.line 347
invoke-interface {v3}, Lio/reactivex/internal/fuseable/SimpleQueue;->clear()V
.line 348
return-void
.line 351
:cond_5d
iget-boolean v13, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->done:Z
.line 353
.local v13, "d":Z
if-eqz v13, :cond_6d
iget-boolean v0, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->delayError:Z
if-nez v0, :cond_6d
.line 354
iget-object v0, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->error:Ljava/lang/Throwable;
.line 355
.local v0, "ex":Ljava/lang/Throwable;
if-eqz v0, :cond_6d
.line 356
invoke-virtual {v1, v0}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->errorAll(Ljava/lang/Throwable;)V
.line 357
return-void
.line 364
.end local v0 # "ex":Ljava/lang/Throwable;
:cond_6d
:try_start_6d
invoke-interface {v3}, Lio/reactivex/internal/fuseable/SimpleQueue;->poll()Ljava/lang/Object;
move-result-object v0
:try_end_71
.catchall {:try_start_6d .. :try_end_71} :catchall_d4
.line 370
.local v0, "v":Ljava/lang/Object;, "TT;"
nop
.line 372
if-nez v0, :cond_77
const/16 v18, 0x1
goto :goto_79
:cond_77
const/16 v18, 0x0
.line 374
.local v18, "empty":Z
:goto_79
if-eqz v13, :cond_89
if-eqz v18, :cond_89
.line 375
iget-object v14, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->error:Ljava/lang/Throwable;
.line 376
.local v14, "ex":Ljava/lang/Throwable;
if-eqz v14, :cond_85
.line 377
invoke-virtual {v1, v14}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->errorAll(Ljava/lang/Throwable;)V
goto :goto_88
.line 379
:cond_85
invoke-virtual/range {p0 .. p0}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->completeAll()V
.line 381
:goto_88
return-void
.line 384
.end local v14 # "ex":Ljava/lang/Throwable;
:cond_89
if-eqz v18, :cond_8e
.line 385
move/from16 v21, v9
goto :goto_e9
.line 388
:cond_8e
array-length v14, v8
const/4 v15, 0x0
:goto_90
if-ge v15, v14, :cond_b1
move/from16 v21, v9
.end local v9 # "n":I
.local v21, "n":I
aget-object v9, v8, v15
.line 389
.local v9, "ms":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
invoke-virtual {v9}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;->get()J
move-result-wide v22
const-wide/high16 v19, -0x8000000000000000L
cmp-long v24, v22, v19
if-eqz v24, :cond_a8
.line 390
move/from16 v22, v13
.end local v13 # "d":Z
.local v22, "d":Z
iget-object v13, v9, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;->actual:Lorg/reactivestreams/Subscriber;
invoke-interface {v13, v0}, Lorg/reactivestreams/Subscriber;->onNext(Ljava/lang/Object;)V
goto :goto_aa
.line 389
.end local v22 # "d":Z
.restart local v13 # "d":Z
:cond_a8
move/from16 v22, v13
.line 388
.end local v9 # "ms":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
.end local v13 # "d":Z
.restart local v22 # "d":Z
:goto_aa
add-int/lit8 v15, v15, 0x1
move/from16 v9, v21
move/from16 v13, v22
goto :goto_90
.line 394
.end local v21 # "n":I
.end local v22 # "d":Z
.local v9, "n":I
.restart local v13 # "d":Z
:cond_b1
move/from16 v21, v9
move/from16 v22, v13
const-wide/high16 v19, -0x8000000000000000L
.end local v9 # "n":I
.end local v13 # "d":Z
.restart local v21 # "n":I
.restart local v22 # "d":Z
const-wide/16 v13, 0x1
add-long/2addr v6, v13
.line 396
if-eqz v5, :cond_ce
add-int/lit8 v12, v12, 0x1
if-ne v12, v4, :cond_ce
.line 397
const/4 v9, 0x0
.line 398
.end local v12 # "upstreamConsumed":I
.local v9, "upstreamConsumed":I
iget-object v12, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->s:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v12}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v12
check-cast v12, Lorg/reactivestreams/Subscription;
int-to-long v13, v4
invoke-interface {v12, v13, v14}, Lorg/reactivestreams/Subscription;->request(J)V
move v12, v9
.line 400
.end local v0 # "v":Ljava/lang/Object;, "TT;"
.end local v9 # "upstreamConsumed":I
.end local v18 # "empty":Z
.end local v22 # "d":Z
.restart local v12 # "upstreamConsumed":I
:cond_ce
move-wide/from16 v14, v19
move/from16 v9, v21
goto/16 :goto_4f
.line 365
.end local v21 # "n":I
.local v9, "n":I
.restart local v13 # "d":Z
:catchall_d4
move-exception v0
move/from16 v21, v9
move/from16 v22, v13
move-object v9, v0
.end local v9 # "n":I
.end local v13 # "d":Z
.restart local v21 # "n":I
.restart local v22 # "d":Z
move-object v0, v9
.line 366
.local v0, "ex":Ljava/lang/Throwable;
invoke-static {v0}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
.line 367
iget-object v9, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->s:Ljava/util/concurrent/atomic/AtomicReference;
invoke-static {v9}, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->cancel(Ljava/util/concurrent/atomic/AtomicReference;)Z
.line 368
invoke-virtual {v1, v0}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->errorAll(Ljava/lang/Throwable;)V
.line 369
return-void
.line 345
.end local v0 # "ex":Ljava/lang/Throwable;
.end local v21 # "n":I
.end local v22 # "d":Z
.restart local v9 # "n":I
:cond_e7
move/from16 v21, v9
.line 402
.end local v9 # "n":I
.restart local v21 # "n":I
:goto_e9
cmp-long v0, v6, v10
if-nez v0, :cond_11b
.line 403
invoke-virtual/range {p0 .. p0}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->isDisposed()Z
move-result v0
if-eqz v0, :cond_f7
.line 404
invoke-interface {v3}, Lio/reactivex/internal/fuseable/SimpleQueue;->clear()V
.line 405
return-void
.line 408
:cond_f7
iget-boolean v0, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->done:Z
.line 410
.local v0, "d":Z
if-eqz v0, :cond_107
iget-boolean v9, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->delayError:Z
if-nez v9, :cond_107
.line 411
iget-object v9, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->error:Ljava/lang/Throwable;
.line 412
.local v9, "ex":Ljava/lang/Throwable;
if-eqz v9, :cond_107
.line 413
invoke-virtual {v1, v9}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->errorAll(Ljava/lang/Throwable;)V
.line 414
return-void
.line 418
.end local v9 # "ex":Ljava/lang/Throwable;
:cond_107
if-eqz v0, :cond_11b
invoke-interface {v3}, Lio/reactivex/internal/fuseable/SimpleQueue;->isEmpty()Z
move-result v9
if-eqz v9, :cond_11b
.line 419
iget-object v9, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->error:Ljava/lang/Throwable;
.line 420
.restart local v9 # "ex":Ljava/lang/Throwable;
if-eqz v9, :cond_117
.line 421
invoke-virtual {v1, v9}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->errorAll(Ljava/lang/Throwable;)V
goto :goto_11a
.line 423
:cond_117
invoke-virtual/range {p0 .. p0}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->completeAll()V
.line 425
:goto_11a
return-void
.line 429
.end local v0 # "d":Z
.end local v9 # "ex":Ljava/lang/Throwable;
:cond_11b
array-length v0, v8
const/4 v9, 0x0
:goto_11d
if-ge v9, v0, :cond_127
aget-object v13, v8, v9
.line 430
.local v13, "ms":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
invoke-static {v13, v6, v7}, Lio/reactivex/internal/util/BackpressureHelper;->produced(Ljava/util/concurrent/atomic/AtomicLong;J)J
.line 429
.end local v13 # "ms":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
add-int/lit8 v9, v9, 0x1
goto :goto_11d
:cond_127
move v0, v12
goto :goto_12b
.line 332
.end local v6 # "e":J
.end local v10 # "r":J
.end local v12 # "upstreamConsumed":I
.end local v21 # "n":I
.local v0, "upstreamConsumed":I
.local v9, "n":I
:cond_129
move/from16 v21, v9
.line 434
.end local v9 # "n":I
.restart local v21 # "n":I
:goto_12b
iput v0, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->consumed:I
.line 435
iget-object v6, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->wip:Ljava/util/concurrent/atomic/AtomicInteger;
neg-int v7, v2
invoke-virtual {v6, v7}, Ljava/util/concurrent/atomic/AtomicInteger;->addAndGet(I)I
move-result v2
.line 436
if-nez v2, :cond_138
.line 437
nop
.line 443
.end local v8 # "array":[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
.end local v21 # "n":I
return-void
.line 439
.restart local v8 # "array":[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
.restart local v21 # "n":I
:cond_138
if-nez v3, :cond_13c
.line 440
iget-object v3, v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->queue:Lio/reactivex/internal/fuseable/SimpleQueue;
.line 442
.end local v8 # "array":[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
.end local v21 # "n":I
:cond_13c
const/4 v7, 0x1
goto/16 :goto_20
.end method
.method errorAll(Ljava/lang/Throwable;)V
.registers 11
.param p1, "ex" # Ljava/lang/Throwable;
.line 447
.local p0, "this":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor<TT;>;"
iget-object v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->subscribers:Ljava/util/concurrent/atomic/AtomicReference;
sget-object v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->TERMINATED:[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->getAndSet(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
array-length v1, v0
const/4 v2, 0x0
:goto_c
if-ge v2, v1, :cond_22
aget-object v3, v0, v2
.line 448
.local v3, "ms":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
invoke-virtual {v3}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;->get()J
move-result-wide v4
const-wide/high16 v6, -0x8000000000000000L
cmp-long v8, v4, v6
if-eqz v8, :cond_1f
.line 449
iget-object v4, v3, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;->actual:Lorg/reactivestreams/Subscriber;
invoke-interface {v4, p1}, Lorg/reactivestreams/Subscriber;->onError(Ljava/lang/Throwable;)V
.line 447
.end local v3 # "ms":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
:cond_1f
add-int/lit8 v2, v2, 0x1
goto :goto_c
.line 452
:cond_22
return-void
.end method
.method public isDisposed()Z
.registers 2
.line 208
.local p0, "this":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor<TT;>;"
iget-object v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->s:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/reactivestreams/Subscription;
invoke-static {v0}, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->isCancelled(Lorg/reactivestreams/Subscription;)Z
move-result v0
return v0
.end method
.method public onComplete()V
.registers 2
.line 237
.local p0, "this":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor<TT;>;"
iget-boolean v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->done:Z
if-nez v0, :cond_a
.line 238
const/4 v0, 0x1
iput-boolean v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->done:Z
.line 239
invoke-virtual {p0}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->drain()V
.line 241
:cond_a
return-void
.end method
.method public onError(Ljava/lang/Throwable;)V
.registers 3
.param p1, "t" # Ljava/lang/Throwable;
.line 226
.local p0, "this":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor<TT;>;"
iget-boolean v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->done:Z
if-eqz v0, :cond_8
.line 227
invoke-static {p1}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
.line 228
return-void
.line 230
:cond_8
iput-object p1, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->error:Ljava/lang/Throwable;
.line 231
const/4 v0, 0x1
iput-boolean v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->done:Z
.line 232
invoke-virtual {p0}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->drain()V
.line 233
return-void
.end method
.method public onNext(Ljava/lang/Object;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(TT;)V"
}
.end annotation
.line 213
.local p0, "this":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor<TT;>;"
.local p1, "t":Ljava/lang/Object;, "TT;"
iget-boolean v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->done:Z
if-eqz v0, :cond_5
.line 214
return-void
.line 216
:cond_5
iget v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->sourceMode:I
if-nez v0, :cond_25
iget-object v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->queue:Lio/reactivex/internal/fuseable/SimpleQueue;
invoke-interface {v0, p1}, Lio/reactivex/internal/fuseable/SimpleQueue;->offer(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_25
.line 217
iget-object v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->s:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/reactivestreams/Subscription;
invoke-interface {v0}, Lorg/reactivestreams/Subscription;->cancel()V
.line 218
new-instance v0, Lio/reactivex/exceptions/MissingBackpressureException;
invoke-direct {v0}, Lio/reactivex/exceptions/MissingBackpressureException;-><init>()V
invoke-virtual {p0, v0}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->onError(Ljava/lang/Throwable;)V
.line 219
return-void
.line 221
:cond_25
invoke-virtual {p0}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->drain()V
.line 222
return-void
.end method
.method public onSubscribe(Lorg/reactivestreams/Subscription;)V
.registers 5
.param p1, "s" # Lorg/reactivestreams/Subscription;
.line 168
.local p0, "this":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor<TT;>;"
iget-object v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->s:Ljava/util/concurrent/atomic/AtomicReference;
invoke-static {v0, p1}, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->setOnce(Ljava/util/concurrent/atomic/AtomicReference;Lorg/reactivestreams/Subscription;)Z
move-result v0
if-eqz v0, :cond_3b
.line 169
instance-of v0, p1, Lio/reactivex/internal/fuseable/QueueSubscription;
if-eqz v0, :cond_2e
.line 171
move-object v0, p1
check-cast v0, Lio/reactivex/internal/fuseable/QueueSubscription;
.line 173
.local v0, "qs":Lio/reactivex/internal/fuseable/QueueSubscription;, "Lio/reactivex/internal/fuseable/QueueSubscription<TT;>;"
const/4 v1, 0x3
invoke-interface {v0, v1}, Lio/reactivex/internal/fuseable/QueueSubscription;->requestFusion(I)I
move-result v1
.line 174
.local v1, "m":I
const/4 v2, 0x1
if-ne v1, v2, :cond_21
.line 175
iput v1, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->sourceMode:I
.line 176
iput-object v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->queue:Lio/reactivex/internal/fuseable/SimpleQueue;
.line 177
iput-boolean v2, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->done:Z
.line 178
invoke-virtual {p0}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->drain()V
.line 179
return-void
.line 181
:cond_21
const/4 v2, 0x2
if-ne v1, v2, :cond_2e
.line 182
iput v1, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->sourceMode:I
.line 183
iput-object v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->queue:Lio/reactivex/internal/fuseable/SimpleQueue;
.line 184
iget v2, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->prefetch:I
invoke-static {p1, v2}, Lio/reactivex/internal/util/QueueDrainHelper;->request(Lorg/reactivestreams/Subscription;I)V
.line 185
return-void
.line 189
.end local v0 # "qs":Lio/reactivex/internal/fuseable/QueueSubscription;, "Lio/reactivex/internal/fuseable/QueueSubscription<TT;>;"
.end local v1 # "m":I
:cond_2e
iget v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->prefetch:I
invoke-static {v0}, Lio/reactivex/internal/util/QueueDrainHelper;->createQueue(I)Lio/reactivex/internal/fuseable/SimpleQueue;
move-result-object v0
iput-object v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->queue:Lio/reactivex/internal/fuseable/SimpleQueue;
.line 191
iget v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->prefetch:I
invoke-static {p1, v0}, Lio/reactivex/internal/util/QueueDrainHelper;->request(Lorg/reactivestreams/Subscription;I)V
.line 193
:cond_3b
return-void
.end method
.method remove(Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;)V
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<",
"TT;>;)V"
}
.end annotation
.line 263
.local p0, "this":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor<TT;>;"
.local p1, "s":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
:goto_0
iget-object v0, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->subscribers: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/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
.line 264
.local v0, "current":[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
sget-object v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->TERMINATED:[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
if-eq v0, v1, :cond_43
sget-object v1, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->EMPTY:[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
if-ne v0, v1, :cond_11
goto :goto_43
.line 267
:cond_11
array-length v1, v0
.line 268
.local v1, "n":I
const/4 v2, -0x1
.line 270
.local v2, "j":I
const/4 v3, 0x0
.local v3, "i":I
:goto_14
if-ge v3, v1, :cond_1f
.line 271
aget-object v4, v0, v3
if-ne v4, p1, :cond_1c
.line 272
move v2, v3
.line 273
goto :goto_1f
.line 270
:cond_1c
add-int/lit8 v3, v3, 0x1
goto :goto_14
.line 277
.end local v3 # "i":I
:cond_1f
:goto_1f
if-gez v2, :cond_22
.line 278
return-void
.line 281
:cond_22
const/4 v3, 0x1
if-ne v1, v3, :cond_28
.line 282
sget-object v3, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->EMPTY:[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
.local v3, "next":[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
goto :goto_39
.line 284
.end local v3 # "next":[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
:cond_28
add-int/lit8 v4, v1, -0x1
new-array v4, v4, [Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
.line 285
.local v4, "next":[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
const/4 v5, 0x0
invoke-static {v0, v5, v4, v5, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 286
add-int/lit8 v5, v2, 0x1
sub-int v6, v1, v2
sub-int/2addr v6, v3
invoke-static {v0, v5, v4, v2, v6}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object v3, v4
.line 288
.end local v4 # "next":[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
.restart local v3 # "next":[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
:goto_39
iget-object v4, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->subscribers:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v4, v0, v3}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_42
.line 289
return-void
.line 291
.end local v0 # "current":[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
.end local v1 # "n":I
.end local v2 # "j":I
.end local v3 # "next":[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
:cond_42
goto :goto_0
.line 265
.restart local v0 # "current":[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "[Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
:cond_43
:goto_43
return-void
.end method
.method protected subscribeActual(Lorg/reactivestreams/Subscriber;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/reactivestreams/Subscriber<",
"-TT;>;)V"
}
.end annotation
.line 296
.local p0, "this":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor<TT;>;"
.local p1, "s":Lorg/reactivestreams/Subscriber;, "Lorg/reactivestreams/Subscriber<-TT;>;"
new-instance v0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;
invoke-direct {v0, p1, p0}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;-><init>(Lorg/reactivestreams/Subscriber;Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;)V
.line 297
.local v0, "ms":Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;, "Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription<TT;>;"
invoke-interface {p1, v0}, Lorg/reactivestreams/Subscriber;->onSubscribe(Lorg/reactivestreams/Subscription;)V
.line 298
invoke-virtual {p0, v0}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->add(Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;)Z
move-result v1
if-eqz v1, :cond_1c
.line 299
invoke-virtual {v0}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;->isCancelled()Z
move-result v1
if-eqz v1, :cond_18
.line 300
invoke-virtual {p0, v0}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->remove(Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastSubscription;)V
.line 301
return-void
.line 303
:cond_18
invoke-virtual {p0}, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->drain()V
goto :goto_27
.line 305
:cond_1c
iget-object v1, p0, Lio/reactivex/internal/operators/flowable/FlowablePublishMulticast$MulticastProcessor;->error:Ljava/lang/Throwable;
.line 306
.local v1, "ex":Ljava/lang/Throwable;
if-eqz v1, :cond_24
.line 307
invoke-interface {p1, v1}, Lorg/reactivestreams/Subscriber;->onError(Ljava/lang/Throwable;)V
goto :goto_27
.line 309
:cond_24
invoke-interface {p1}, Lorg/reactivestreams/Subscriber;->onComplete()V
.line 312
.end local v1 # "ex":Ljava/lang/Throwable;
:goto_27
return-void
.end method