периодически всплывает проблема когда не хватает стека, например много стека могут отъедать вызовы функций сторонней библиотеки и заранее это неизвестно, и после разработки или доработки кода программа просто падает в некоторых случаях в процессе тестирования или в процессе уже работы. Приходится подгонять размер стека под конкретную сопрограмму. Так вот может кто-нибудь копал на тему автоматически расширяемого стека или каких-нибудь явных ассертов/исключений при нехватке стека (интересует под MSVC) чтобы это еще и как-то с boost::asio::spawn совместить?
Я пользовался, дропнул boost::coro в сторону boost::context::callcc совмещённый с async вызовами. В целом общая рекомендация не делать больших контекстов, не вызывать рекурсивные функции, дробить контексты на более мелкие, и вообще аккуратно относиться к коду. Но если это лень делать или просто не времени, то как я уже упомянул callcc поддерживает фичу “segmented stacks” это ровно то, что надо.
Обсуждают сегодня