Исправление tailgunner, (текущая версия) :
а async/await — явное указание, по выбору программиста.
Я называю `async`/`await`-ом всю работу по добавлению асинхронности в Rust - и языковые конструкции, и то, во что они рассахариваются, и даже runtime-поддержку.
Я пока не могу сообразить, можно ли async/await сделать без переключения стеков.
Сейчас не могу найти ссылку, но я видел вариант рассахаривания `async fn`, в котором всё состояние функции хранилось в (автоматически создаваемом компилятором) объекте, так что одна нить ОС могла исполнять любое количество `async fn`.
Исходная версия tailgunner, :
а async/await — явное указание, по выбору программиста.
Я называю `async`/`await`-ом всю работу по добавлению асинхронности в Rust - и языковые конструкции, и то, во что они рассахариваются, и даже runtime-поддержку.
Я пока не могу сообразить, можно ли async/await сделать без переключения стеков.
Сейчас не могу найти ссылку, но я видел вариант рассахаривания `async fn`, в котором всё состояние функции хранилось в (автоматически создаваемом компилятором) объекте, а так что одна нить ОС могла исполнять любое количество `async fn`.