'does boost::asio co_spawn create an actual thread?

When looking through boost asio co_spawn documentation (https://www.boost.org/doc/libs/1_78_0/doc/html/boost_asio/reference/co_spawn/overload6.html), I see this statement, "Spawn a new coroutined-based thread of execution", however my understanding is that co_spawn does not create an actual thread, but uses threads that are part of the boost::asio::io_context pool. It's a "coroutine-based thread of execution" in a sense, that this coroutine would be a root of all coroutines that are spawned from inside this one

Is my understanding correct here or an actual thread is created whenever co_spawn is used like this:

::boost::asio::co_spawn(io_ctx, [&] -> ::boost::asio::awaitable<void> {
 // do something
}, ::boost::asio::detached);

thanks!



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source