in dispenso/task_set.h [70:88]
void schedule(F&& f) {
if (outstandingTaskCount_.load(std::memory_order_relaxed) > taskSetLoadFactor_) {
f();
} else {
outstandingTaskCount_.fetch_add(1, std::memory_order_acquire);
pool_.schedule(token_, [this, f = std::move(f)]() mutable {
#if defined(__cpp_exceptions)
try {
f();
} catch (...) {
trySetCurrentException();
}
#else
f();
#endif // __cpp_exceptions
outstandingTaskCount_.fetch_sub(1, std::memory_order_release);
});
}
}