#include "globalpool.h" #include #include #include #include GlobalThreadPool::GlobalThreadPool() { return; assert(emscripten_wasm_worker_self_id() == 0); if (emscripten::val::global("window").isUndefined()) { // running in node for tsgen or tests return; } workq = std::make_unique(); pool = std::make_unique( std::max(4, emscripten_num_logical_cores()), *workq); } DeadlineWorkQ::Future GlobalThreadPool::submit(std::function &&f, size_t deadline) { assert(instance.workq != nullptr); return instance.workq->submit(std::move(f), deadline); } DeadlineWorkQ &GlobalThreadPool::getWorkQ() { assert(instance.workq != nullptr); return *instance.workq; } GlobalThreadPool GlobalThreadPool::instance{};