Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > coroutines в С++ |
Автор: GoldFinch 25.3.2010, 12:22 | ||
Кто нибудь применял сопрограммы на практике? Я пока нашел только такие варианты реализации:
Устройство Даффа плохо тем что возникают потенциальные сложности с локальными объектами в сопрограмме, макросы тяжело отлаживать. Ручная работа со стеком крайне сложна в реализации и фактически является заменой фиберов. |
Автор: SABROG 28.3.2010, 13:51 |
Я правильно понимаю, сопрограмма это таже же асинхронная очередь событий как и в Qt? То есть один поток используется для обработки нескольких циклов. Предположим я вызываю сопрограмму, её вызов становится в очередь до того момента когда я выйду из итерационного цикла и не войду в него снова. Как только я покинул область видимости функции вызывается моя сопрограмма, которая блокирует вход моего предыдущего цикла пока не завершится и не вызовет меня обратно точно также по завершении. В общем yield это аналог emit в Qt с Qt::QueuedConnection. |