.class public abstract Lkotlinx/coroutines/internal/AtomicOp; .super Lkotlinx/coroutines/internal/OpDescriptor; .source "SourceFile" # static fields .field public static final _consensus$FU:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater; # instance fields .field private volatile _consensus:Ljava/lang/Object; # direct methods .method static constructor ()V .locals 3 const-class v0, Ljava/lang/Object; const-string v1, "_consensus" const-class v2, Lkotlinx/coroutines/internal/AtomicOp; 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/internal/AtomicOp;->_consensus$FU:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater; return-void .end method .method public constructor ()V .locals 1 .line 49 invoke-direct {p0}, Lkotlinx/coroutines/internal/OpDescriptor;->()V .line 50 sget-object v0, Lkotlinx/coroutines/internal/AtomicKt;->NO_DECISION:Ljava/lang/Object; iput-object v0, p0, Lkotlinx/coroutines/internal/AtomicOp;->_consensus:Ljava/lang/Object; return-void .end method # virtual methods .method public abstract complete(Ljava/lang/Object;Ljava/lang/Object;)V .end method .method public final decide(Ljava/lang/Object;)Ljava/lang/Object; .locals 3 sget-object v0, Lkotlinx/coroutines/internal/AtomicOp;->_consensus$FU:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater; .line 56 invoke-virtual {v0, p0}, Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 .line 57 sget-object v2, Lkotlinx/coroutines/internal/AtomicKt;->NO_DECISION:Ljava/lang/Object; if-eq v1, v2, :cond_0 return-object v1 .line 58 :cond_0 invoke-static {v0, p0, v2, p1}, Landroidx/concurrent/futures/AbstractResolvableFuture$SafeAtomicHelper$$ExternalSyntheticBackportWithForwarding0;->m(Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z move-result v1 if-eqz v1, :cond_1 return-object p1 .line 59 :cond_1 invoke-virtual {v0, p0}, Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 return-object p1 .end method .method public final perform(Ljava/lang/Object;)Ljava/lang/Object; .locals 2 sget-object v0, Lkotlinx/coroutines/internal/AtomicOp;->_consensus$FU:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater; .line 70 invoke-virtual {v0, p0}, Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 .line 71 sget-object v1, Lkotlinx/coroutines/internal/AtomicKt;->NO_DECISION:Ljava/lang/Object; if-ne v0, v1, :cond_0 .line 72 invoke-virtual {p0, p1}, Lkotlinx/coroutines/internal/AtomicOp;->prepare(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 invoke-virtual {p0, v0}, Lkotlinx/coroutines/internal/AtomicOp;->decide(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 .line 75 :cond_0 invoke-virtual {p0, p1, v0}, Lkotlinx/coroutines/internal/AtomicOp;->complete(Ljava/lang/Object;Ljava/lang/Object;)V return-object v0 .end method .method public abstract prepare(Ljava/lang/Object;)Ljava/lang/Object; .end method