-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Open
Labels
Description
Currently, names of all threads that belong to CoroutineScheduler (Dispatchers.Default, Dispatchers.IO and Dispatchers.IO.limitedParallelism(...) are named DefaultDispatcher-worker-* which might be quite confusing to look at in thread dumps (i.e. it's possible to have dozens of such threads on 8 core machine).
Example of such confusion: https://stackoverflow.com/questions/78502056/why-thread-name-is-defaultdispatcher-worker-even-though-i-specify-function-to-ru
While we cannot leverage Thread.setName because of its performance impact, we still can sweeten the pill:
- Name the thread somehow more generic (for example:
CoroutineScheduler-worker-, something likeshared-pool-worker-,coroutine-pool-worker-etc.) - Add an artificial stackframe that indicates that the thread was spawned and/or is parked as part of the "IO" pool if it's possible implementation-wise
kornilova203, HelloImKevo, DmitryTsyvtsyn and ck2e14