Почему данный блок кода не запускается?

Почему не отрабатывает данный блок кода?

fun main() {
    val customScope = CustomScope()

    customScope.launch {
        println("start")
        launch { println("a") }
        launch { println("b") }
        println("end")
    }

}

class CustomScope : CoroutineScope {

    private var parentJob = Job()

    override val coroutineContext: CoroutineContext
        get() = Dispatchers.IO + parentJob
    
}

При этом если делать вызов launch внутри runblocking, то все работает.

runBlocking {
    launch {
        println("start")
        launch { println("a") }
        launch { println("b") }
        println("end")
    }
}

Ответы (1 шт):

Автор решения: Wlad

код работает. что вы имеете ввиду когда говорите "не отрабатывает данный блок кода"??
если то, что выводится не в том порядке, то вам надо использовать такую конструкцию

customScope.launch {
    logInfo("start")
    coroutineScope {
        launch {
            delay(1000)
            logInfo("a")
        }
        launch {
            delay(1000)
            logInfo("b")
        }
    }

    logInfo("end")
}
→ Ссылка