Size: a a a

Конференция C++ Russia

2021 July 18

A

Arelav in Конференция C++ Russia
Ты не "сохраняешь в файберах весь стек", ты переключаешь стеки, запоминая то место в котором был на момент переключения
источник

АР

Андрей Руссков... in Конференция C++ Russia
чтобы "переключить стек" надо текущий скопировать куда-то и на его место притянуть новый
источник

NK

Nickolay Kononov in Конференция C++ Russia
Нет
источник

IL

Ilya L in Конференция C++ Russia
Куда копировать, если он уже в памяти лежит?
источник

NK

Nickolay Kononov in Конференция C++ Russia
Ты уже исполняешься на нем
источник

IL

Ilya L in Конференция C++ Russia
Просто меняешь указатели
источник

NK

Nickolay Kononov in Конференция C++ Russia
Он выделен ты на нем что-то делаешь потом сохраняешь в структуру какой-то Стейт и меняешь указатель
источник

NK

Nickolay Kononov in Конференция C++ Russia
Прыгаешь с одного стека на другой, зачем его копировать
источник

АР

Андрей Руссков... in Конференция C++ Russia
а, понял
источник

NK

Nickolay Kononov in Конференция C++ Russia
Ну в основном регистры которые надо сохранить
источник

A

Arelav in Конференция C++ Russia
https://gitlab.com/Lipovsky/context/-/blob/master/context/machine_context.S#L11 например так это может выглядеть на x86
источник

*

*cyberzx in Конференция C++ Russia
Тут нужно поработать в языках, где они есть и активно используются. Например Go
источник

*

*cyberzx in Конференция C++ Russia
Нет, это не так. Ты сравниваешь тёплое с мягким. Никто не мешает корутинам выполнятся на нескольких потоках. Корутины просто дают возможность писать асинхронный код в синхронном стиле.
источник

NK

Nickolay Kononov in Конференция C++ Russia
это уже обсудили в соседнем чате
источник

*

*cyberzx in Конференция C++ Russia
Скорость не всегда является главным критерием оптимальности. Зачастую важнее надёжность и простота написания сложной логики. Особенно, если ты пишешь сервера
источник

*

*cyberzx in Конференция C++ Russia
Соседний чат?
источник

A

Arelav in Конференция C++ Russia
Кажется во всех почти языках => C#, python, rust, kotlin -- стеклесс
golang, и обычно в виде либ boost::fiber, java loom, не уверен но вроде есть пропозал? Windows fiber -- стекфулл
И куча примеров про которые я не в курсе
источник

*

*cyberzx in Конференция C++ Russia
Стеклес в плюсах это, к сожалению, провал, боль и разочарование (
источник

АР

Андрей Руссков... in Конференция C++ Russia
почему?
источник

A

Arelav in Конференция C++ Russia
Почему? Мне тоже не очень нравится, кажется можно было попробовать сделать лаконичнее, пример в core coroutines, но интересно что не нравится именно вам?
источник