Interesting: my proposal appears to be indeed a generalization of the greenlet 
approach.

Specifically, while the greenlet proposal seems to only use one large stack per 
native thread, I'm suggesting to use multiple large stacks that can be stolen 
by other threads, which does mitigate the issues stemming from non-position 
dependent stacks (they are not eliminated, but they have low probability of 
happening).

It's also indeed possible to fully eliminate those issues by autoboxing 
everything whose address is taken, but that would have a potentially large 
performance impact on non-blocking code, while merely copying the stack only 
imposes a performance penalty to code that blocks.                              
          
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to