#include <gtopt/work_pool.hpp>
BasicWorkPool class
Adaptive thread pool with generic priority key.
| Template parameters | |
|---|---|
| Key | Secondary sort-key type for task ordering within the same TaskPriority tier. Default is int64_t. |
| KeyCompare | Comparator applied to keys. Default std::less<Key> gives "smaller key → higher priority". Pass std::greater<Key> to obtain "larger key → higher
priority" (the original pre-refactor behavior). |
All methods are defined inline here so that any specialization can be instantiated without a separate translation unit.
Derived classes
- class AdaptiveWorkPool final
- Default work pool using
int64_tpriority key withstd::lesssemantics (smaller key → higher priority).
Public types
- struct Statistics
- using key_compare = KeyCompare
- using key_type = Key
- using Requirements = BasicTaskRequirements<Key>
Constructors, destructors, conversion operators
- BasicWorkPool(BasicWorkPool&&) deleted
- BasicWorkPool(const BasicWorkPool&) deleted
- BasicWorkPool(WorkPoolConfig config = WorkPoolConfig {}) explicit
- ~BasicWorkPool()
Public functions
- auto format_statistics() const -> std::string noexcept
- auto get_statistics() const -> Statistics noexcept
- auto log_statistics() const -> void
- auto operator=(const BasicWorkPool&&) -> BasicWorkPool& deleted
- auto operator=(const BasicWorkPool&) -> BasicWorkPool& deleted
- auto shutdown() -> void
- auto start() -> void
- auto submit(Func&& func, const Requirements& req = Requirements(), Args && ... args) -> std::expected< std::future< std::invoke_result_t< Func, Args... > >, std::error_code > -> auto
- auto submit_lambda(Func&& func, Requirements req = {}) -> auto