OnSubscribeAmb$Selection.smali
.class final Lrx/internal/operators/OnSubscribeAmb$Selection;
.super Ljava/util/concurrent/atomic/AtomicReference;
.source "OnSubscribeAmb.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lrx/internal/operators/OnSubscribeAmb;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x18
name = "Selection"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Ljava/util/concurrent/atomic/AtomicReference<",
"Lrx/internal/operators/OnSubscribeAmb$AmbSubscriber<",
"TT;>;>;"
}
.end annotation
# instance fields
.field final ambSubscribers:Ljava/util/Collection;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Collection<",
"Lrx/internal/operators/OnSubscribeAmb$AmbSubscriber<",
"TT;>;>;"
}
.end annotation
.end field
# direct methods
.method constructor <init>()V
.registers 2
.line 1
invoke-direct {p0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
.line 2
new-instance v0, Ljava/util/concurrent/ConcurrentLinkedQueue;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentLinkedQueue;-><init>()V
iput-object v0, p0, Lrx/internal/operators/OnSubscribeAmb$Selection;->ambSubscribers:Ljava/util/Collection;
return-void
.end method
# virtual methods
.method public unsubscribeLosers()V
.registers 2
.line 1
invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lrx/internal/operators/OnSubscribeAmb$AmbSubscriber;
if-eqz v0, :cond_b
.line 2
invoke-virtual {p0, v0}, Lrx/internal/operators/OnSubscribeAmb$Selection;->unsubscribeOthers(Lrx/internal/operators/OnSubscribeAmb$AmbSubscriber;)V
:cond_b
return-void
.end method
.method public unsubscribeOthers(Lrx/internal/operators/OnSubscribeAmb$AmbSubscriber;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lrx/internal/operators/OnSubscribeAmb$AmbSubscriber<",
"TT;>;)V"
}
.end annotation
.line 1
iget-object v0, p0, Lrx/internal/operators/OnSubscribeAmb$Selection;->ambSubscribers:Ljava/util/Collection;
invoke-interface {v0}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
move-result-object v0
:cond_6
:goto_6
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_18
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lrx/internal/operators/OnSubscribeAmb$AmbSubscriber;
if-eq v1, p1, :cond_6
.line 2
invoke-virtual {v1}, Lrx/Subscriber;->unsubscribe()V
goto :goto_6
.line 3
:cond_18
iget-object p1, p0, Lrx/internal/operators/OnSubscribeAmb$Selection;->ambSubscribers:Ljava/util/Collection;
invoke-interface {p1}, Ljava/util/Collection;->clear()V
return-void
.end method