fun poll()

in integration-test/lincheck/src/main/org/jetbrains/lincheck_test/datastructures/SequentialIntChannel.kt [65:83]


    fun poll(): Int? {
        if (buffer.size > 0) {
            val res = buffer.removeAt(0)
            while (true) {
                if (senders.isEmpty()) break
                val (s, x) = senders.removeAt(0)
                if (s.tryResume0(Unit)) {
                    buffer.add(x)
                    break
                }
            }
            return res
        }
        while (true) {
            if (senders.isEmpty()) return null
            val (s, x) = senders.removeAt(0)
            if (s.tryResume0(Unit)) return x
        }
    }