Discussion on Synchronous Crate Concurrency Refactor using Stackful Coroutines Model in Rust

I am not sure how thread/task-locals are relevant to the rest of your comment. If a task uses task-local storage, then migration across workers is not a problem for it, since the memory is... well, local to the task. If a task wants to use a true thread/worker local storage (e.g. for ThreadRng), then the code which accesses it must not contain any yield points (and ideally it should be enforced by the type/effect system).

No, I am not assuming it and I explicitly mentioned tasks using non-Send data across yield points and that the stackfull approach works with such code perfectly fine without any headache you encounter in an equivalent futures-based code.

You've been (wrongly) conditioned by the flawed Rust async model. Think about it, why it's not a problem for a thread to migrate across CPU cores despite potentially storing Rcs on its stack, but it's a problem to do the same for a Future (migration across workers is equivalent to migration across CPU cores)? It's nothing more than a leaky abstraction point of the Rust async system which models persistent part of task stacks as "just a type". I wrote about it previously here.