in Source/Shared/arcana/threading/internal/internal_task.h [184:216]
void add_continuations(gsl::span<continuation_payload> continuations)
{
if (continuations.empty())
return;
bool runit = false;
{
std::lock_guard<std::mutex> guard{ m_mutex };
if (m_taskRedirect)
{
m_taskRedirect->add_continuations(continuations, m_taskRedirect);
}
else
{
if (m_completed)
{
runit = true;
}
else
{
internal_add_continuations(continuations);
}
}
}
if (runit)
{
for (auto& continuation : continuations)
continuation.run();
}
}