rkeazor
03/23/2022, 4:22 AMclass SimpleChannelTest {
    val simpleChannel = Channel<Int>()
    fun simpleFunction() {
        runBlocking {
            launch {
                simpleChannel.consumeEach { println(it) }
            }
            var x = 0
            repeat(10) {
                simpleChannel.send(x++)
                println("sent Message")
            }
            simpleChannel.close()
        }
    }0
sent Message
sent Message
1
2
sent Message
sent Message
3
4
sent Message
sent Message
5
6
sent Message
sent Message
7Sam
03/23/2022, 8:52 AMsendreceivesendreceivesendNick Allen
03/23/2022, 5:14 PMIt's down to the dispatcher to decide which one gets resumed first.That's not quite accurate. If something is waiting to
receivesendtrySendpublic final override suspend fun send(element: E) {
        // fast path -- try offer non-blocking
        if (offerInternal(element) === OFFER_SUCCESS) return
        // slow-path does suspend or throws exception
        return sendSuspend(element)
    }sendChannelChannel.UNLIMITEDSam
03/23/2022, 5:16 PMrkeazor
03/23/2022, 5:46 PMrkeazor
03/23/2022, 5:52 PMNick Allen
03/23/2022, 5:59 PMsendreceivesendreceivesendreceivesendreceivesendrkeazor
03/24/2022, 6:09 AMrkeazor
03/24/2022, 6:09 AM