Closed
Description
Right now when you spawn a SingleThreaded task, its scheduler is given a 'friend' scheduler to which it sends work that can't be executed. This creates a situation where threads that are rejecting a lot of work serialize a bunch of tasks through a single other thread which may not be able to run that work in a reasonable time.
Instead of sending work to a single friend it needs to either go back into the general pool, or (better) single-threaded schedulers should add their work queues to the global pool of work queues for stealing.