package community.yuvomi.mobile /** Never delivers a late system-picker result into a different server/web context. */ class SelectionGate { private var owner: Int? = null val outstanding: Boolean get() = owner != null fun begin(generation: Int): Boolean { if (outstanding) return false owner = generation return true } fun consume(generation: Int): Boolean { val previous = owner owner = null return previous == generation } fun restoreOutstanding() { owner = -1 } }