.class final Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver; .super Lio/reactivex/internal/observers/BasicIntQueueDisposable; .source "ObservableObserveOn.java" # interfaces .implements Lkh/g0; .implements Ljava/lang/Runnable; # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lio/reactivex/internal/operators/observable/ObservableObserveOn; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x19 name = "ObserveOnObserver" .end annotation .annotation system Ldalvik/annotation/Signature; value = { "", "Lio/reactivex/internal/observers/BasicIntQueueDisposable<", "TT;>;", "Lkh/g0<", "TT;>;", "Ljava/lang/Runnable;" } .end annotation # static fields .field private static final serialVersionUID:J = 0x5b45d4a143741ca0L # instance fields .field public final bufferSize:I .field public final delayError:Z .field public volatile disposed:Z .field public volatile done:Z .field public final downstream:Lkh/g0; .annotation system Ldalvik/annotation/Signature; value = { "Lkh/g0<", "-TT;>;" } .end annotation .end field .field public error:Ljava/lang/Throwable; .field public outputFused:Z .field public queue:Lrh/o; .annotation system Ldalvik/annotation/Signature; value = { "Lrh/o<", "TT;>;" } .end annotation .end field .field public sourceMode:I .field public upstream:Lio/reactivex/disposables/b; .field public final worker:Lkh/h0$c; # direct methods .method public constructor (Lkh/g0;Lkh/h0$c;ZI)V .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lkh/g0<", "-TT;>;", "Lkh/h0$c;", "ZI)V" } .end annotation .line 1 invoke-direct {p0}, Lio/reactivex/internal/observers/BasicIntQueueDisposable;->()V .line 2 iput-object p1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->downstream:Lkh/g0; .line 3 iput-object p2, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->worker:Lkh/h0$c; .line 4 iput-boolean p3, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->delayError:Z .line 5 iput p4, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->bufferSize:I return-void .end method # virtual methods .method public checkTerminated(ZZLkh/g0;)Z .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(ZZ", "Lkh/g0<", "-TT;>;)Z" } .end annotation .line 1 iget-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->disposed:Z const/4 v1, 0x1 if-eqz v0, :cond_0 .line 2 iget-object p1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->queue:Lrh/o; invoke-interface {p1}, Lrh/o;->clear()V return v1 :cond_0 if-eqz p1, :cond_4 .line 3 iget-object p1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->error:Ljava/lang/Throwable; .line 4 iget-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->delayError:Z if-eqz v0, :cond_2 if-eqz p2, :cond_4 .line 5 iput-boolean v1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->disposed:Z if-eqz p1, :cond_1 .line 6 invoke-interface {p3, p1}, Lkh/g0;->onError(Ljava/lang/Throwable;)V goto :goto_0 .line 7 :cond_1 invoke-interface {p3}, Lkh/g0;->onComplete()V .line 8 :goto_0 iget-object p1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->worker:Lkh/h0$c; invoke-interface {p1}, Lio/reactivex/disposables/b;->dispose()V return v1 :cond_2 if-eqz p1, :cond_3 .line 9 iput-boolean v1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->disposed:Z .line 10 iget-object p2, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->queue:Lrh/o; invoke-interface {p2}, Lrh/o;->clear()V .line 11 invoke-interface {p3, p1}, Lkh/g0;->onError(Ljava/lang/Throwable;)V .line 12 iget-object p1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->worker:Lkh/h0$c; invoke-interface {p1}, Lio/reactivex/disposables/b;->dispose()V return v1 :cond_3 if-eqz p2, :cond_4 .line 13 iput-boolean v1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->disposed:Z .line 14 invoke-interface {p3}, Lkh/g0;->onComplete()V .line 15 iget-object p1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->worker:Lkh/h0$c; invoke-interface {p1}, Lio/reactivex/disposables/b;->dispose()V return v1 :cond_4 const/4 p1, 0x0 return p1 .end method .method public clear()V .locals 1 .line 1 iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->queue:Lrh/o; invoke-interface {v0}, Lrh/o;->clear()V return-void .end method .method public dispose()V .locals 1 .line 1 iget-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->disposed:Z if-nez v0, :cond_0 const/4 v0, 0x1 .line 2 iput-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->disposed:Z .line 3 iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->upstream:Lio/reactivex/disposables/b; invoke-interface {v0}, Lio/reactivex/disposables/b;->dispose()V .line 4 iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->worker:Lkh/h0$c; invoke-interface {v0}, Lio/reactivex/disposables/b;->dispose()V .line 5 invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicInteger;->getAndIncrement()I move-result v0 if-nez v0, :cond_0 .line 6 iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->queue:Lrh/o; invoke-interface {v0}, Lrh/o;->clear()V :cond_0 return-void .end method .method public drainFused()V .locals 5 const/4 v0, 0x1 move v1, v0 .line 1 :cond_0 iget-boolean v2, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->disposed:Z if-eqz v2, :cond_1 return-void .line 2 :cond_1 iget-boolean v2, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->done:Z .line 3 iget-object v3, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->error:Ljava/lang/Throwable; .line 4 iget-boolean v4, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->delayError:Z if-nez v4, :cond_2 if-eqz v2, :cond_2 if-eqz v3, :cond_2 .line 5 iput-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->disposed:Z .line 6 iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->downstream:Lkh/g0; iget-object v1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->error:Ljava/lang/Throwable; invoke-interface {v0, v1}, Lkh/g0;->onError(Ljava/lang/Throwable;)V .line 7 iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->worker:Lkh/h0$c; invoke-interface {v0}, Lio/reactivex/disposables/b;->dispose()V return-void .line 8 :cond_2 iget-object v3, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->downstream:Lkh/g0; const/4 v4, 0x0 invoke-interface {v3, v4}, Lkh/g0;->onNext(Ljava/lang/Object;)V if-eqz v2, :cond_4 .line 9 iput-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->disposed:Z .line 10 iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->error:Ljava/lang/Throwable; if-eqz v0, :cond_3 .line 11 iget-object v1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->downstream:Lkh/g0; invoke-interface {v1, v0}, Lkh/g0;->onError(Ljava/lang/Throwable;)V goto :goto_0 .line 12 :cond_3 iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->downstream:Lkh/g0; invoke-interface {v0}, Lkh/g0;->onComplete()V .line 13 :goto_0 iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->worker:Lkh/h0$c; invoke-interface {v0}, Lio/reactivex/disposables/b;->dispose()V return-void :cond_4 neg-int v1, v1 .line 14 invoke-virtual {p0, v1}, Ljava/util/concurrent/atomic/AtomicInteger;->addAndGet(I)I move-result v1 if-nez v1, :cond_0 return-void .end method .method public drainNormal()V .locals 7 .line 1 iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->queue:Lrh/o; .line 2 iget-object v1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->downstream:Lkh/g0; const/4 v2, 0x1 move v3, v2 .line 3 :cond_0 iget-boolean v4, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->done:Z invoke-interface {v0}, Lrh/o;->isEmpty()Z move-result v5 invoke-virtual {p0, v4, v5, v1}, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->checkTerminated(ZZLkh/g0;)Z move-result v4 if-eqz v4, :cond_1 return-void .line 4 :cond_1 :goto_0 iget-boolean v4, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->done:Z .line 5 :try_start_0 invoke-interface {v0}, Lrh/o;->poll()Ljava/lang/Object; move-result-object v5 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 if-nez v5, :cond_2 move v6, v2 goto :goto_1 :cond_2 const/4 v6, 0x0 .line 6 :goto_1 invoke-virtual {p0, v4, v6, v1}, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->checkTerminated(ZZLkh/g0;)Z move-result v4 if-eqz v4, :cond_3 return-void :cond_3 if-eqz v6, :cond_4 neg-int v3, v3 .line 7 invoke-virtual {p0, v3}, Ljava/util/concurrent/atomic/AtomicInteger;->addAndGet(I)I move-result v3 if-nez v3, :cond_0 return-void .line 8 :cond_4 invoke-interface {v1, v5}, Lkh/g0;->onNext(Ljava/lang/Object;)V goto :goto_0 :catchall_0 move-exception v3 .line 9 invoke-static {v3}, Lio/reactivex/exceptions/a;->b(Ljava/lang/Throwable;)V .line 10 iput-boolean v2, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->disposed:Z .line 11 iget-object v2, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->upstream:Lio/reactivex/disposables/b; invoke-interface {v2}, Lio/reactivex/disposables/b;->dispose()V .line 12 invoke-interface {v0}, Lrh/o;->clear()V .line 13 invoke-interface {v1, v3}, Lkh/g0;->onError(Ljava/lang/Throwable;)V .line 14 iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->worker:Lkh/h0$c; invoke-interface {v0}, Lio/reactivex/disposables/b;->dispose()V return-void .end method .method public isDisposed()Z .locals 1 .line 1 iget-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->disposed:Z return v0 .end method .method public isEmpty()Z .locals 1 .line 1 iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->queue:Lrh/o; invoke-interface {v0}, Lrh/o;->isEmpty()Z move-result v0 return v0 .end method .method public onComplete()V .locals 1 .line 1 iget-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->done:Z if-eqz v0, :cond_0 return-void :cond_0 const/4 v0, 0x1 .line 2 iput-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->done:Z .line 3 invoke-virtual {p0}, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->schedule()V return-void .end method .method public onError(Ljava/lang/Throwable;)V .locals 1 .line 1 iget-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->done:Z if-eqz v0, :cond_0 .line 2 invoke-static {p1}, Lwh/a;->Y(Ljava/lang/Throwable;)V return-void .line 3 :cond_0 iput-object p1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->error:Ljava/lang/Throwable; const/4 p1, 0x1 .line 4 iput-boolean p1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->done:Z .line 5 invoke-virtual {p0}, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->schedule()V return-void .end method .method public onNext(Ljava/lang/Object;)V .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(TT;)V" } .end annotation .line 1 iget-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->done:Z if-eqz v0, :cond_0 return-void .line 2 :cond_0 iget v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->sourceMode:I const/4 v1, 0x2 if-eq v0, v1, :cond_1 .line 3 iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->queue:Lrh/o; invoke-interface {v0, p1}, Lrh/o;->offer(Ljava/lang/Object;)Z .line 4 :cond_1 invoke-virtual {p0}, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->schedule()V return-void .end method .method public onSubscribe(Lio/reactivex/disposables/b;)V .locals 2 .line 1 iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->upstream:Lio/reactivex/disposables/b; invoke-static {v0, p1}, Lio/reactivex/internal/disposables/DisposableHelper;->validate(Lio/reactivex/disposables/b;Lio/reactivex/disposables/b;)Z move-result v0 if-eqz v0, :cond_2 .line 2 iput-object p1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->upstream:Lio/reactivex/disposables/b; .line 3 instance-of v0, p1, Lrh/j; if-eqz v0, :cond_1 .line 4 check-cast p1, Lrh/j; const/4 v0, 0x7 .line 5 invoke-interface {p1, v0}, Lrh/k;->requestFusion(I)I move-result v0 const/4 v1, 0x1 if-ne v0, v1, :cond_0 .line 6 iput v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->sourceMode:I .line 7 iput-object p1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->queue:Lrh/o; .line 8 iput-boolean v1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->done:Z .line 9 iget-object p1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->downstream:Lkh/g0; invoke-interface {p1, p0}, Lkh/g0;->onSubscribe(Lio/reactivex/disposables/b;)V .line 10 invoke-virtual {p0}, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->schedule()V return-void :cond_0 const/4 v1, 0x2 if-ne v0, v1, :cond_1 .line 11 iput v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->sourceMode:I .line 12 iput-object p1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->queue:Lrh/o; .line 13 iget-object p1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->downstream:Lkh/g0; invoke-interface {p1, p0}, Lkh/g0;->onSubscribe(Lio/reactivex/disposables/b;)V return-void .line 14 :cond_1 new-instance p1, Lio/reactivex/internal/queue/a; iget v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->bufferSize:I invoke-direct {p1, v0}, Lio/reactivex/internal/queue/a;->(I)V iput-object p1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->queue:Lrh/o; .line 15 iget-object p1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->downstream:Lkh/g0; invoke-interface {p1, p0}, Lkh/g0;->onSubscribe(Lio/reactivex/disposables/b;)V :cond_2 return-void .end method .method public poll()Ljava/lang/Object; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()TT;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/Exception; } .end annotation .annotation build Lio/reactivex/annotations/Nullable; .end annotation .line 1 iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->queue:Lrh/o; invoke-interface {v0}, Lrh/o;->poll()Ljava/lang/Object; move-result-object v0 return-object v0 .end method .method public requestFusion(I)I .locals 1 const/4 v0, 0x2 and-int/2addr p1, v0 if-eqz p1, :cond_0 const/4 p1, 0x1 .line 1 iput-boolean p1, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->outputFused:Z return v0 :cond_0 const/4 p1, 0x0 return p1 .end method .method public run()V .locals 1 .line 1 iget-boolean v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->outputFused:Z if-eqz v0, :cond_0 .line 2 invoke-virtual {p0}, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->drainFused()V goto :goto_0 .line 3 :cond_0 invoke-virtual {p0}, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->drainNormal()V :goto_0 return-void .end method .method public schedule()V .locals 1 .line 1 invoke-virtual {p0}, Ljava/util/concurrent/atomic/AtomicInteger;->getAndIncrement()I move-result v0 if-nez v0, :cond_0 .line 2 iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableObserveOn$ObserveOnObserver;->worker:Lkh/h0$c; invoke-virtual {v0, p0}, Lkh/h0$c;->b(Ljava/lang/Runnable;)Lio/reactivex/disposables/b; :cond_0 return-void .end method