3#include <boost/asio/spawn.hpp>
4#include <boost/asio/steady_timer.hpp>
19 boost::asio::steady_timer timer_;
20 std::optional<size_t> maxChildren_;
21 std::atomic_size_t childrenCounter_{0};
32 boost::asio::yield_context yield,
33 std::optional<size_t> maxChildren = std::nullopt
53 spawn(boost::asio::yield_context yield, std::function<
void(boost::asio::yield_context)> fn);
64 std::optional<std::function<void()>>
75 asyncWait(boost::asio::yield_context yield);
95 onCoroutineCompleted();
std::optional< std::function< void()> > registerForeign(boost::asio::yield_context yield)
Register a foreign coroutine this group should wait for.
Definition CoroutineGroup.cpp:48
bool isFull() const
Check if the group is full.
Definition CoroutineGroup.cpp:76
void asyncWait(boost::asio::yield_context yield)
Wait for all the coroutines in the group to finish.
Definition CoroutineGroup.cpp:60
CoroutineGroup(boost::asio::yield_context yield, std::optional< size_t > maxChildren=std::nullopt)
Construct a new Coroutine Group object.
Definition CoroutineGroup.cpp:16
bool spawn(boost::asio::yield_context yield, std::function< void(boost::asio::yield_context)> fn)
Spawn a new coroutine in the group.
Definition CoroutineGroup.cpp:31
~CoroutineGroup()
Destroy the Coroutine Group object.
Definition CoroutineGroup.cpp:22
size_t size() const
Get the number of coroutines in the group.
Definition CoroutineGroup.cpp:70
This namespace contains various utilities.
Definition AccountUtils.hpp:11