Why is something like this: ```val ctx = currentCo...
# coroutines
e
Why is something like this:
Copy code
val ctx = currentCoroutineContext()
val test = object : CoroutineScope {
    override val coroutineContext = ctx
}
task = test.launch(context) { block() }
Not the same as:
Copy code
coroutineScope { 
 task = launch(context)
}
I know the first one is bad practice so are they both pretty bad?
e
they aren't the same thing at all
Copy code
coroutineScope {
    task = launch { block() }
}
block()
is guaranteed to have completed when
coroutineScope {}
returns
e
Ah I see, startUndispatchedOrReturn waits for children.
z
Also, coroutineScope creates a child job