#pragma once #include "workq.h" #include class GlobalThreadPool { std::unique_ptr workq; std::unique_ptr pool; static GlobalThreadPool instance; GlobalThreadPool(); public: GlobalThreadPool(const GlobalThreadPool &) = delete; GlobalThreadPool &operator=(const GlobalThreadPool &) = delete; GlobalThreadPool(GlobalThreadPool &&) = delete; GlobalThreadPool &operator=(GlobalThreadPool &&) = delete; static DeadlineWorkQ::Future submit(std::function &&f, size_t deadline); static DeadlineWorkQ &getWorkQ(); };