Background context: go/memory-infra
Today we bring up a bg thread to handle unbound MemoryDumpProvider(s) (MDP) (i.e. that don't specify a task-runner affinity) without janking the main/IO threads (e.g., for things like reading /proc
/PID/smaps & co).
Long term we should look at using a task runner from the task-scheduler.
We just have to be very careful before doing that and anyways I don't want that to happen before we have finished and stabilized all the mojoification & UKM work, as that is already introducing some refactoring risk.
My main worry is the fact that we invoke arbitrary MDPs on that thread and I have no idea if they take locks and would interlock themselves but putting them on a task runner that is shared with another thread.
I can't easily see how this would happen but at the same time is the sort of risky change where I don't feel we can generally assume "will just work". Hence the priority