.class public final Lkotlinx/coroutines/InvokeOnCancelling; .super Lkotlinx/coroutines/JobCancellingNode; .source "SourceFile" # static fields .field public static final _invoked$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater; # instance fields .field private volatile _invoked:I .field public final handler:Lkotlin/jvm/functions/Function1; # direct methods .method static constructor ()V .locals 2 const-class v0, Lkotlinx/coroutines/InvokeOnCancelling; const-string v1, "_invoked" invoke-static {v0, v1}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater; move-result-object v0 sput-object v0, Lkotlinx/coroutines/InvokeOnCancelling;->_invoked$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater; return-void .end method .method public constructor (Lkotlin/jvm/functions/Function1;)V .locals 0 .line 1427 invoke-direct {p0}, Lkotlinx/coroutines/JobCancellingNode;->()V iput-object p1, p0, Lkotlinx/coroutines/InvokeOnCancelling;->handler:Lkotlin/jvm/functions/Function1; return-void .end method # virtual methods .method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object; .locals 0 .line 1425 check-cast p1, Ljava/lang/Throwable; invoke-virtual {p0, p1}, Lkotlinx/coroutines/InvokeOnCancelling;->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 3 sget-object v0, Lkotlinx/coroutines/InvokeOnCancelling;->_invoked$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater; const/4 v1, 0x0 const/4 v2, 0x1 .line 1431 invoke-virtual {v0, p0, v1, v2}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->compareAndSet(Ljava/lang/Object;II)Z move-result v0 if-eqz v0, :cond_0 iget-object v0, p0, Lkotlinx/coroutines/InvokeOnCancelling;->handler:Lkotlin/jvm/functions/Function1; invoke-interface {v0, p1}, Lkotlin/jvm/functions/Function1;->invoke(Ljava/lang/Object;)Ljava/lang/Object; :cond_0 return-void .end method