Dennis Schröder
09/27/2019, 4:16 PMlaunch(newSingleThreadContext("ServiceContext")) {
...
}
and
launch {
withContext((newSingleThreadContext("ServiceContext") {
....
}
}
?Marko Mitic
09/27/2019, 4:18 PMDennis Schröder
09/27/2019, 4:19 PMbdawg.io
09/27/2019, 5:40 PMbdawg.io
09/27/2019, 5:41 PMlaunch(start = UNDISPATCHED) {
withContext(newSingleThreadContext(...)) {
doSomething()
}
}
elizarov
09/27/2019, 9:50 PMnewSingleThreadContex
is a resource that must be closed. Both your code example leak the newly created thread every time they launch a coroutine. Don’t do this. Do this:
// at top level in some file
val myContext = newSingleThreadContex(...)
// somewhere in code
launch(myContext) { ... }
bdawg.io
09/29/2019, 6:27 PMClosable
that that it could be used via newSingleThreadContext(...).use { launch(it) { ... } }
where it makes sense?elizarov
09/29/2019, 10:08 PM