vak: (Default)
[personal profile] vak
В языке Rust есть интересная фича: кооперативная многозадачность, реализованная в форме async/await и future. Интересно, можно ли на её основе сбацать простой симулятор цифровой логики. Когда-то я сделал такое на простом Си ("Симулятор RTL - это очень просто"). Но в Си пришлось задействовать setjmp/longjmp для переключение потоков, а тут вроде всё нужное прямо в языке дано.

Имеется хорошая статья, объясняющая подробности кооперативной многозадачности в Русте: https://os.phil-opp.com/async-await/