Closed
Description
We need some kind of IO
dispatcher in kotlinx.coroutines
that will be optimized for offloading of blocking calls and will be backed by an unbounded thread-pool that is smart enough to create new threads only when needed and to shut them down on timeout. The goal is that you could always wrap blocking IO call in withContext(IO) { ... }
(UPDATED: it was formerly named run(IO)
) and be sure that you will not run into the problem of having not enough threads in your pool. However, it will be up to the user to control the maximal number of concurrent operations via some other means.
It will be somewhat conceptually similar to newThread()
scheduler in Rx, but it will be also designed to be used where io()
scheduler in Rx is used.