uhe
10/01/2018, 3:35 PM@Deprecated("No replacement. Group child in a coroutineScope { } block to wait for them")
public suspend fun Job.joinChildren()val networkContext = <http://Dispatchers.IO|Dispatchers.IO>
val networkJob = Job()
private fun onNetworkContext(block: suspend CoroutineScope.() -> Unit) =
    GlobalScope.launch(networkContext + networkJob, block = block)
// invoked from another coroutine:
suspend fun abortAndRetry() {
    networkJob.cancelChildren()
    // how do I replace this properly?
    networkJob.joinChildren()
   // retry ...
 }Jonathan
10/01/2018, 3:39 PMvar networkScope = CoroutineScope(Job() + <http://Dispatchers.IO|Dispatchers.IO>)
private fun onNetworkContext(block: suspend CoroutineScope.() -> Unit) =
    networkScope.launch(block = block)
// invoked from another coroutine:
suspend fun abortAndRetry() {
  networkScope.coroutineContext[Job]?.cancelAndJoin()
  
  // retry ...
  networkScope = CoroutineScope(Job() + <http://Dispatchers.IO|Dispatchers.IO>)
}Jonathan
10/01/2018, 3:40 PMGlobalScopeelizarov
10/01/2018, 3:40 PMonNetworkContextabortAndRetry<http://github.com/kotlin/kotlinx.coroutines/issues>elizarov
10/01/2018, 3:41 PMjoinChildrenelizarov
10/01/2018, 3:41 PMnetworkJob.children().forEach { it.join() }elizarov
10/01/2018, 3:42 PMcancelChildrenjoinChildrennetworkJob.cancelAndJoinuhe
10/01/2018, 3:43 PMelizarov
10/01/2018, 3:43 PMjoinChildrenuhe
10/01/2018, 3:44 PMuhe
10/01/2018, 3:45 PM