start

fun start(
    start: CoroutineStart,
    block: suspend () -> T
): Unit
(source)
fun <R> start(
    start: CoroutineStart,
    receiver: R,
    block: suspend R.() -> T
): Unit
(source)

Starts this coroutine with the given code block and start strategy. This function shall be invoked at most once on this coroutine.

First, this function initializes parent job from the parentContext of this coroutine that was passed to it during construction. Second, it starts the coroutine based on start parameter: