When send_deferred sees a task to wake up it calls enqueue_blocked_task to reschedule the work, but enqueue_blocked_task assumes that some other scheduler will come along to steal the work. For tasks spawned with SingleThreaded scheduling though, the scheduler doesn't participate in work stealing, so if the task then goes on to block, the other task will never wake up.
When
send_deferredsees a task to wake up it callsenqueue_blocked_taskto reschedule the work, butenqueue_blocked_taskassumes that some other scheduler will come along to steal the work. For tasks spawned withSingleThreadedscheduling though, the scheduler doesn't participate in work stealing, so if the task then goes on to block, the other task will never wake up.