Record compare-and-set claims against a single slot and report the contention.

Atomic Claim Coordination Report

AtomicClaimCoordinationReport.kt
import java.util.concurrent.atomic.AtomicInteger

fun main() {
    val requests = 
    val slot = AtomicInteger(0)
    var claimed = 0
    var rejected = 0

    for (i in 1..requests) {
        if (slot.compareAndSet(0, i)) {
            claimed++
        } else {
            rejected++
        }
    }

    val owner = slot.get()

    val status = if (claimed == 0) {
        "open"
    } else if (rejected > 0) {
        "contended"
    } else {
        "claimed"
    }

    println("requests=$requests claimed=$claimed rejected=$rejected owner=$owner $status")
}
import java.util.concurrent.atomic.AtomicInteger

fun main() {
    val requests = 
    val slot = AtomicInteger(0)
    var claimed = 0
    var rejected = 0

    for (i in 1..requests) {
        if (slot.compareAndSet(0, i)) {
            claimed++
        } else {
            rejected++
        }
    }

    val owner = slot.get()

    val status = if (claimed == 0) {
        "open"
    } else if (rejected > 0) {
        "contended"
    } else {
        "claimed"
    }

    println("requests=$requests claimed=$claimed rejected=$rejected owner=$owner $status")
}
import java.util.concurrent.atomic.AtomicInteger

fun main() {
    val requests = 
    val slot = AtomicInteger(0)
    var claimed = 0
    var rejected = 0

    for (i in 1..requests) {
        if (slot.compareAndSet(0, i)) {
            claimed++
        } else {
            rejected++
        }
    }

    val owner = slot.get()

    val status = if (claimed == 0) {
        "open"
    } else if (rejected > 0) {
        "contended"
    } else {
        "claimed"
    }

    println("requests=$requests claimed=$claimed rejected=$rejected owner=$owner $status")
}
compare-and-set claim A coordination report can record a single-winner claim. An `java.util.concurrent.atomic.AtomicInteger` starts at zero for unclaimed, and `compareAndSet(0, id)` only succeeds for the first request, which writes its id into the slot; every later request reads a nonzero owner and is rejected. With no requests the slot is open, with one request it is claimed, and with competing requests it is contended. The status line summarizes the outcome and reports the winning owner id.