М
Size: a a a
М
NK
М
NK
М
AM
QH
AM
NK
NK
NK
QH
QH
NK
NK
QH
AtomicReference<Deferred>NK
AtomicReference<Deferred>QH
NK
QH
var d: Deferredif (ref.get().also { d = it } == null && ref.cas(null, Deferred().also { d = it })) {
запускаем задачу, которая присвоит внутрь d
} else {
return d.await()
}