|
|
|
|
|
by weiming
2502 days ago
|
|
Going down the same rabbit hole earlier this week, found this to be a good explanation: All of the data needed by a task is contained within its future. That means we can neatly sidestep problems of dynamic stack growth and stack swapping, giving us truly lightweight tasks without any runtime system implications. ... Perhaps surprisingly, the future within a task compiles down to a state machine, so that every time the task wakes up to continue polling, it continues execution from the current state—working just like hand-rolled code. [1] [1] https://aturon.github.io/blog/2016/09/07/futures-design/ |
|
How are those tasks implemented, and what's scheduling them?