SchedulerWhen$ScheduledAction.smali
.class abstract Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;
.super Ljava/util/concurrent/atomic/AtomicReference;
.source "SchedulerWhen.java"
# interfaces
.implements Lio/reactivex/disposables/Disposable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/internal/schedulers/SchedulerWhen;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x408
name = "ScheduledAction"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReference<",
"Lio/reactivex/disposables/Disposable;",
">;",
"Lio/reactivex/disposables/Disposable;"
}
.end annotation
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method constructor <init>()V
.registers 2
.line 160
sget-object v0, Lio/reactivex/internal/schedulers/SchedulerWhen;->SUBSCRIBED:Lio/reactivex/disposables/Disposable;
invoke-direct {p0, v0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>(Ljava/lang/Object;)V
.line 161
return-void
.end method
# virtual methods
.method call(Lio/reactivex/Scheduler$Worker;Lio/reactivex/CompletableObserver;)V
.registers 6
.param p1, "actualWorker" # Lio/reactivex/Scheduler$Worker;
.param p2, "actionCompletable" # Lio/reactivex/CompletableObserver;
.line 164
invoke-virtual {p0}, Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lio/reactivex/disposables/Disposable;
.line 166
.local v0, "oldState":Lio/reactivex/disposables/Disposable;
sget-object v1, Lio/reactivex/internal/schedulers/SchedulerWhen;->DISPOSED:Lio/reactivex/disposables/Disposable;
if-ne v0, v1, :cond_b
.line 168
return-void
.line 170
:cond_b
sget-object v1, Lio/reactivex/internal/schedulers/SchedulerWhen;->SUBSCRIBED:Lio/reactivex/disposables/Disposable;
if-eq v0, v1, :cond_10
.line 174
return-void
.line 177
:cond_10
invoke-virtual {p0, p1, p2}, Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;->callActual(Lio/reactivex/Scheduler$Worker;Lio/reactivex/CompletableObserver;)Lio/reactivex/disposables/Disposable;
move-result-object v1
.line 179
.local v1, "newState":Lio/reactivex/disposables/Disposable;
sget-object v2, Lio/reactivex/internal/schedulers/SchedulerWhen;->SUBSCRIBED:Lio/reactivex/disposables/Disposable;
invoke-virtual {p0, v2, v1}, Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_1f
.line 184
invoke-interface {v1}, Lio/reactivex/disposables/Disposable;->dispose()V
.line 186
:cond_1f
return-void
.end method
.method protected abstract callActual(Lio/reactivex/Scheduler$Worker;Lio/reactivex/CompletableObserver;)Lio/reactivex/disposables/Disposable;
.end method
.method public dispose()V
.registers 4
.line 199
sget-object v0, Lio/reactivex/internal/schedulers/SchedulerWhen;->DISPOSED:Lio/reactivex/disposables/Disposable;
.line 201
.local v0, "newState":Lio/reactivex/disposables/Disposable;
:goto_2
invoke-virtual {p0}, Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;->get()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lio/reactivex/disposables/Disposable;
.line 202
.local v1, "oldState":Lio/reactivex/disposables/Disposable;
sget-object v2, Lio/reactivex/internal/schedulers/SchedulerWhen;->DISPOSED:Lio/reactivex/disposables/Disposable;
if-ne v1, v2, :cond_d
.line 204
return-void
.line 206
:cond_d
invoke-virtual {p0, v1, v0}, Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_1b
.line 208
sget-object v2, Lio/reactivex/internal/schedulers/SchedulerWhen;->SUBSCRIBED:Lio/reactivex/disposables/Disposable;
if-eq v1, v2, :cond_1a
.line 210
invoke-interface {v1}, Lio/reactivex/disposables/Disposable;->dispose()V
.line 212
:cond_1a
return-void
.line 206
:cond_1b
goto :goto_2
.end method
.method public isDisposed()Z
.registers 2
.line 192
invoke-virtual {p0}, Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lio/reactivex/disposables/Disposable;
invoke-interface {v0}, Lio/reactivex/disposables/Disposable;->isDisposed()Z
move-result v0
return v0
.end method