.class public final Lkotlinx/coroutines/AwaitAll$AwaitAllNode; .super Lkotlinx/coroutines/JobNode; .source "SourceFile" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lkotlinx/coroutines/AwaitAll; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x11 name = "AwaitAllNode" .end annotation # static fields .field public static final _disposer$FU:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater; # instance fields .field private volatile _disposer:Ljava/lang/Object; .field public final continuation:Lkotlinx/coroutines/CancellableContinuation; .field public handle:Lkotlinx/coroutines/DisposableHandle; .field public final synthetic this$0:Lkotlinx/coroutines/AwaitAll; # direct methods .method static constructor ()V .locals 3 const-class v0, Ljava/lang/Object; const-string v1, "_disposer" const-class v2, Lkotlinx/coroutines/AwaitAll$AwaitAllNode; invoke-static {v2, v0, v1}, Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater; move-result-object v0 sput-object v0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->_disposer$FU:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater; return-void .end method .method public constructor (Lkotlinx/coroutines/AwaitAll;Lkotlinx/coroutines/CancellableContinuation;)V .locals 0 iput-object p1, p0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->this$0:Lkotlinx/coroutines/AwaitAll; .line 103 invoke-direct {p0}, Lkotlinx/coroutines/JobNode;->()V iput-object p2, p0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->continuation:Lkotlinx/coroutines/CancellableContinuation; return-void .end method # virtual methods .method public final getDisposer()Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel; .locals 1 sget-object v0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->_disposer$FU:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater; .line 108 invoke-virtual {v0, p0}, Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel; return-object v0 .end method .method public final getHandle()Lkotlinx/coroutines/DisposableHandle; .locals 1 iget-object v0, p0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->handle:Lkotlinx/coroutines/DisposableHandle; if-eqz v0, :cond_0 return-object v0 :cond_0 const-string v0, "handle" .line 104 invoke-static {v0}, Lkotlin/jvm/internal/Intrinsics;->throwUninitializedPropertyAccessException(Ljava/lang/String;)V const/4 v0, 0x0 return-object v0 .end method .method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object; .locals 0 .line 103 check-cast p1, Ljava/lang/Throwable; invoke-virtual {p0, p1}, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->invoke(Ljava/lang/Throwable;)V sget-object p1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; return-object p1 .end method .method public invoke(Ljava/lang/Throwable;)V .locals 5 if-eqz p1, :cond_0 iget-object v0, p0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->continuation:Lkotlinx/coroutines/CancellableContinuation; .line 113 invoke-interface {v0, p1}, Lkotlinx/coroutines/CancellableContinuation;->tryResumeWithException(Ljava/lang/Throwable;)Ljava/lang/Object; move-result-object p1 if-eqz p1, :cond_2 iget-object v0, p0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->continuation:Lkotlinx/coroutines/CancellableContinuation; .line 115 invoke-interface {v0, p1}, Lkotlinx/coroutines/CancellableContinuation;->completeResume(Ljava/lang/Object;)V .line 118 invoke-virtual {p0}, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->getDisposer()Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel; move-result-object p1 if-eqz p1, :cond_2 invoke-virtual {p1}, Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;->disposeAll()V goto :goto_1 :cond_0 invoke-static {}, Lkotlinx/coroutines/AwaitAll;->access$getNotCompletedCount$FU$p()Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater; move-result-object p1 iget-object v0, p0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->this$0:Lkotlinx/coroutines/AwaitAll; .line 120 invoke-virtual {p1, v0}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->decrementAndGet(Ljava/lang/Object;)I move-result p1 if-nez p1, :cond_2 iget-object p1, p0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->continuation:Lkotlinx/coroutines/CancellableContinuation; iget-object v0, p0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->this$0:Lkotlinx/coroutines/AwaitAll; .line 121 invoke-static {v0}, Lkotlinx/coroutines/AwaitAll;->access$getDeferreds$p(Lkotlinx/coroutines/AwaitAll;)[Lkotlinx/coroutines/Deferred; move-result-object v0 .line 128 new-instance v1, Ljava/util/ArrayList; array-length v2, v0 invoke-direct {v1, v2}, Ljava/util/ArrayList;->(I)V .line 11670 array-length v2, v0 const/4 v3, 0x0 :goto_0 if-ge v3, v2, :cond_1 aget-object v4, v0, v3 .line 121 invoke-interface {v4}, Lkotlinx/coroutines/Deferred;->getCompleted()Ljava/lang/Object; move-result-object v4 .line 11671 invoke-interface {v1, v4}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z add-int/lit8 v3, v3, 0x1 goto :goto_0 .line 121 :cond_1 invoke-static {v1}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 invoke-interface {p1, v0}, Lkotlin/coroutines/Continuation;->resumeWith(Ljava/lang/Object;)V :cond_2 :goto_1 return-void .end method .method public final setDisposer(Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;)V .locals 1 sget-object v0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->_disposer$FU:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater; .line 109 invoke-virtual {v0, p0, p1}, Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->set(Ljava/lang/Object;Ljava/lang/Object;)V return-void .end method .method public final setHandle(Lkotlinx/coroutines/DisposableHandle;)V .locals 0 iput-object p1, p0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->handle:Lkotlinx/coroutines/DisposableHandle; return-void .end method