void schedule()

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);
      });
    }
  }