É seguro usar a desova diretamente em uma corotina asio stackful?

Quando eu uso o spawn para iniciar uma nova corotina cheia de pilha em uma corotina, o valgrind diz muito sobre o uso de valor não inicializado (saída valgrind)

Então eu uso io_service.post para chamar um manipulador e iniciar uma nova rotina de pilha cheia, tudo parece bem.

Pesquisei e li alguns documentos, mas não consigo encontrar algo sobre como criar uma nova corotina de pilha cheia com segurança em uma corotina de pilha cheia.

Aqui está o código:

#include <iostream>
#include <boost/asio.hpp>
#include <boost/asio/spawn.hpp>
#include <boost/asio/system_timer.hpp>
#include <chrono>

using namespace std;

int main()
{
    auto use_post = false;
    boost::asio::io_service io_service;
    boost::asio::spawn(io_service,
                       [&io_service, &use_post](boost::asio::yield_context yield){
        if(use_post){
            io_service.post([&io_service]{
                boost::asio::spawn(io_service, [&io_service](boost::asio::yield_context yield){
                    boost::asio::system_timer timer(io_service);
                    timer.expires_from_now(std::chrono::seconds(1));
                    timer.async_wait(yield);
                    cout << "Sleep 1 second" << endl;
                });
            });
        }
        else{
            boost::asio::spawn(io_service, [&io_service](boost::asio::yield_context yield){
                boost::asio::system_timer timer(io_service);
                timer.expires_from_now(std::chrono::seconds(1));
                timer.async_wait(yield);
                cout << "Sleep 1 second" << endl;
            });
        }
        boost::asio::system_timer timer(io_service);
        timer.expires_from_now(std::chrono::seconds(2));
        timer.async_wait(yield);
        cout << "Sleep 2 seconds" << endl;
    });
    io_service.run();
    return 0;
}

definido como verdadeirouse_post variável, a nova rotina de pilha cheia será iniciada por post + spawn.

Talvez eu não leia os documentos com cuidado, não consigo encontrar nada útilBoost.Asio C++ Network Programming, N4045 e impulsionar o documento asio.

questionAnswers(1)

yourAnswerToTheQuestion