in dispenso/thread_pool.h [202:212]
inline void ThreadPool::schedule(moodycamel::ProducerToken& token, F&& f) {
ssize_t curWork = workRemaining_.load(std::memory_order_relaxed);
ssize_t quickLoadFactor = numThreads_.load(std::memory_order_relaxed);
quickLoadFactor += quickLoadFactor / 2;
if ((detail::PerPoolPerThreadInfo::isPoolRecursive(this) && curWork > quickLoadFactor) ||
(curWork > poolLoadFactor_.load(std::memory_order_relaxed))) {
f();
} else {
schedule(token, std::move(f), ForceQueuingTag());
}
}