Stefan Oltmann
07/07/2021, 12:03 PMZach Klippenstein (he/him) [MOD]
07/07/2021, 2:37 PMMutableSharedFlow
is for.Stefan Oltmann
07/07/2021, 3:24 PMZach Klippenstein (he/him) [MOD]
07/07/2021, 4:30 PMReceiveChannel.collectAsFlow
or .receiveAsFlow
.Stefan Oltmann
07/07/2021, 5:11 PMStefan Oltmann
07/07/2021, 5:12 PMZach Klippenstein (he/him) [MOD]
07/07/2021, 5:14 PMSingleThreadCoroutineScope
is probably âbadâ here because itâs defeating the whole point of coroutines (concurrency without threads).Stefan Oltmann
07/07/2021, 5:15 PMZach Klippenstein (he/him) [MOD]
07/07/2021, 5:16 PMMutex
and Channel
, which is a perfectly valid use case for those things.Zach Klippenstein (he/him) [MOD]
07/07/2021, 5:17 PMStefan Oltmann
07/07/2021, 5:19 PMZach Klippenstein (he/him) [MOD]
07/07/2021, 5:20 PMval workQueue: Channel<URL> = Channel()
val imageLoader = launch(<http://Dispatchers.IO|Dispatchers.IO>) {
for (url in workQueue) {
// Load images serially.
val bitmap = loadBitmap(url) // assuming this is blocking?
// Thumbnail creation is CPU-bound, so fan out.
launch(Dispatchers.Default) {
createThumbnail(bitmap)
}
}
}
Zach Klippenstein (he/him) [MOD]
07/07/2021, 5:21 PMZach Klippenstein (he/him) [MOD]
07/07/2021, 5:21 PMStefan Oltmann
07/07/2021, 5:21 PMZach Klippenstein (he/him) [MOD]
07/07/2021, 5:22 PMZach Klippenstein (he/him) [MOD]
07/07/2021, 5:23 PMZach Klippenstein (he/him) [MOD]
07/07/2021, 5:23 PMStefan Oltmann
07/07/2021, 5:23 PMZach Klippenstein (he/him) [MOD]
07/07/2021, 5:24 PMZach Klippenstein (he/him) [MOD]
07/07/2021, 5:24 PMStefan Oltmann
07/07/2021, 5:25 PMZach Klippenstein (he/him) [MOD]
07/07/2021, 5:25 PMZach Klippenstein (he/him) [MOD]
07/07/2021, 5:25 PMStefan Oltmann
07/07/2021, 5:26 PMZach Klippenstein (he/him) [MOD]
07/07/2021, 5:27 PMZach Klippenstein (he/him) [MOD]
07/07/2021, 5:28 PMMutableSharedFlow
to implement this as well, but because you only ever have a single collector, which you also control, itâs not much different from using a channel, and the channel is probably simpler.Zach Klippenstein (he/him) [MOD]
07/07/2021, 5:28 PMStefan Oltmann
07/07/2021, 5:31 PM