Ответ
Если дочерняя корутина завершится (нормально или с ошибкой), это не повлияет напрямую на родительский scope. Однако, если родительская корутина была отменена (например, через job.cancel()), то все дочерние корутины также будут отменены. Это поведение по умолчанию в CoroutineScope.
Пример:
val parentJob = CoroutineScope(Dispatchers.IO).launch {
val childJob = launch {
delay(1000)
println("Child done")
}
delay(500)
childJob.cancel() // Отменяем только дочернюю корутину
println("Parent continues")
}
Здесь родительская корутина продолжит работу после отмены дочерней. Но если отменить parentJob, то childJob тоже автоматически отменится.