coder82
10/29/2020, 1:12 PMoverride val coroutineContext:CoroutineContext
get() = Executors.newSingleThreadExecutor().asCoroutineDispatcher()
override fun invokeLater(vararg params:Any, block:suspend AdapterProcess.() -> Unit):Job {
currentJob = launch(coroutineContext) {
this@DummyProcess.block()
}
return currentJob
}
mateusz.kwiecinski
10/29/2020, 1:21 PMcoroutineContext
field you invoke getter get()
hence you create new singleThreadExecutor on each invocation.
override val coroutineContext:CoroutineContext = Executors.newSingleThreadExecutor().asCoroutineDispatcher()
☝️ this would assign created dispatcher to a field once and read its value latercoder82
10/29/2020, 1:24 PM