add docs
This commit is contained in:
parent
47bbf61bff
commit
016a333109
|
@ -848,8 +848,14 @@ inline internal::EventLoopAwaiter<T> queueInLoopCoro(trantor::EventLoop *loop,
|
||||||
/**
|
/**
|
||||||
* @brief Waits for all tasks to complete. Throws exception if any of the tasks
|
* @brief Waits for all tasks to complete. Throws exception if any of the tasks
|
||||||
* throws. In such cases, all tasks are still waited for completion.
|
* throws. In such cases, all tasks are still waited for completion.
|
||||||
|
* @param tasks A list of tasks to wait for
|
||||||
|
* @param loop The event loop to switch to after all tasks are completed
|
||||||
|
* (default nullptr, which means to keep on whichever thread the last task is
|
||||||
|
* completed)
|
||||||
|
* @return A task that completes when all tasks are completed
|
||||||
*/
|
*/
|
||||||
inline Task<> when_all(std::vector<Task<>> tasks, trantor::EventLoop* loop = nullptr)
|
inline Task<> when_all(std::vector<Task<>> tasks,
|
||||||
|
trantor::EventLoop *loop = nullptr)
|
||||||
{
|
{
|
||||||
std::exception_ptr eptr;
|
std::exception_ptr eptr;
|
||||||
std::atomic_size_t counter = tasks.size();
|
std::atomic_size_t counter = tasks.size();
|
||||||
|
@ -877,7 +883,7 @@ inline Task<> when_all(std::vector<Task<>> tasks, trantor::EventLoop* loop = nul
|
||||||
}(eptr, counter, waiter, std::move(task));
|
}(eptr, counter, waiter, std::move(task));
|
||||||
}
|
}
|
||||||
co_await waiter;
|
co_await waiter;
|
||||||
if(loop)
|
if (loop)
|
||||||
co_await switchThreadCoro(loop);
|
co_await switchThreadCoro(loop);
|
||||||
|
|
||||||
if (eptr)
|
if (eptr)
|
||||||
|
|
Loading…
Reference in New Issue