.class public final Lr0/m/b; .super Ljava/lang/Object; .source "BlockingObservable.java" # annotations .annotation system Ldalvik/annotation/Signature; value = { "", "Ljava/lang/Object;" } .end annotation # instance fields .field public final a:Lrx/Observable; .annotation system Ldalvik/annotation/Signature; value = { "Lrx/Observable<", "+TT;>;" } .end annotation .end field # direct methods .method public constructor (Lrx/Observable;)V .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lrx/Observable<", "+TT;>;)V" } .end annotation invoke-direct {p0}, Ljava/lang/Object;->()V iput-object p1, p0, Lr0/m/b;->a:Lrx/Observable; return-void .end method # virtual methods .method public a()Ljava/lang/Object; .locals 9 .annotation system Ldalvik/annotation/Signature; value = { "()TT;" } .end annotation iget-object v0, p0, Lr0/m/b;->a:Lrx/Observable; sget-object v1, Lr0/l/a/u1$a;->a:Lr0/l/a/u1; new-instance v2, Lr0/l/a/u; iget-object v0, v0, Lrx/Observable;->d:Lrx/Observable$a; invoke-direct {v2, v0, v1}, Lr0/l/a/u;->(Lrx/Observable$a;Lrx/Observable$b;)V invoke-static {v2}, Lrx/Observable;->d0(Lrx/Observable$a;)Lrx/Observable; move-result-object v0 new-instance v1, Ljava/util/concurrent/atomic/AtomicReference; invoke-direct {v1}, Ljava/util/concurrent/atomic/AtomicReference;->()V new-instance v2, Ljava/util/concurrent/atomic/AtomicReference; invoke-direct {v2}, Ljava/util/concurrent/atomic/AtomicReference;->()V new-instance v3, Ljava/util/concurrent/CountDownLatch; const/4 v4, 0x1 invoke-direct {v3, v4}, Ljava/util/concurrent/CountDownLatch;->(I)V new-instance v4, Lr0/m/a; invoke-direct {v4, p0, v3, v2, v1}, Lr0/m/a;->(Lr0/m/b;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicReference;)V invoke-virtual {v0, v4}, Lrx/Observable;->Q(Lrx/Subscriber;)Lrx/Subscription; move-result-object v0 invoke-virtual {v3}, Ljava/util/concurrent/CountDownLatch;->getCount()J move-result-wide v4 const-wide/16 v6, 0x0 cmp-long v8, v4, v6 if-nez v8, :cond_0 goto :goto_0 :cond_0 :try_start_0 invoke-virtual {v3}, Ljava/util/concurrent/CountDownLatch;->await()V :try_end_0 .catch Ljava/lang/InterruptedException; {:try_start_0 .. :try_end_0} :catch_0 :goto_0 invoke-virtual {v2}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object; move-result-object v0 if-nez v0, :cond_1 invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object; move-result-object v0 return-object v0 :cond_1 invoke-virtual {v2}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/lang/Throwable; invoke-static {v0}, Lf/n/a/k/a;->Q(Ljava/lang/Throwable;)Ljava/lang/RuntimeException; const/4 v0, 0x0 throw v0 :catch_0 move-exception v1 invoke-interface {v0}, Lrx/Subscription;->unsubscribe()V invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; move-result-object v0 invoke-virtual {v0}, Ljava/lang/Thread;->interrupt()V new-instance v0, Ljava/lang/IllegalStateException; const-string v2, "Interrupted while waiting for subscription to complete." invoke-direct {v0, v2, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v0 .end method