Size: a a a

Maxwell's Demons

2021 July 05

V

VadimAnimeEmbedder in Maxwell's Demons
Т.к. внутренний планировщик внутри самого потока крутится.
источник

V

VadimAnimeEmbedder in Maxwell's Demons
А не системный.
источник

V

VadimAnimeEmbedder in Maxwell's Demons
Который таски переключает.
источник

V

VadimAnimeEmbedder in Maxwell's Demons
Вроде так было в Go и планировали в C++ завести.
источник

V

Vasya in Maxwell's Demons
Планировщика из коробки нет. Ты его сам должен написать.
источник

V

VadimAnimeEmbedder in Maxwell's Demons
Ясненько...
источник

a

aum in Maxwell's Demons
Ну то есть кооперативная?
которая только внутри корутин и потоки не затрагивает?
источник

V

Vasya in Maxwell's Demons
Можно и кооперативную. Я же говорю. Там только заготовки для приостановки и возобновления. Всё остальное ты делаешь сам.
источник

a

aum in Maxwell's Demons
ладно, придётся читать :)
источник

VK

Valentin Kornienko in Maxwell's Demons
Лучше всего посмотрите для начала Your first coroutine статью
источник

VK

Valentin Kornienko in Maxwell's Demons
Очень понятно и приятно рассказывает
источник

VK

Valentin Kornienko in Maxwell's Demons
Lewis Baker очень в детали уходит, его хорошо читать, когда уже немного попробовали написать и решили посмотреть, что происходит в недрах компилятора
источник

V

Vasya in Maxwell's Demons
Просто в других языках корутины это уже готовый инструмент, например как в C#. В c++ не так. Тебе дают только заготовки, из которых ты должен собрать нужное. Тебе дали возможность поставить метод "на паузу" и возобновить, когда потребуется. Дальше твори что хочешь.
источник

VK

Valentin Kornienko in Maxwell's Demons
Так и есть, все верно👍
источник

a

aum in Maxwell's Demons
аа, понял, думал что готовый к использованию инструмент
источник

VK

Valentin Kornienko in Maxwell's Demons
Вы что, С++ и "из-коробки"😅
источник

a

aum in Maxwell's Demons
как кто-то сказал "жизнь слишком коротка для с++"
источник

VK

Valentin Kornienko in Maxwell's Demons
Вам дали фрезерный станок, токарный станок и набор для творчества с коробком болванок металла и дерева
источник

VK

Valentin Kornienko in Maxwell's Demons
Дальше все в ваших руках, х
источник

V

Vasya in Maxwell's Demons
Я корутины прикрутил к boost::asio. Асинхронная работа с сетью. Делаю co_await sendPacket(); В этом месте корутина останавливается и возобновится только когда придёт ответ. В это время я могу другие запросы обрабатывать. Плюс в том, что код остаётся линейным. Выглядит как блокирующий, но асинхронный 😍.
источник