diff --git a/Include/Aurora/Async/WorkBasic.hpp b/Include/Aurora/Async/WorkBasic.hpp index c20b02a0..462b76d8 100644 --- a/Include/Aurora/Async/WorkBasic.hpp +++ b/Include/Aurora/Async/WorkBasic.hpp @@ -59,9 +59,8 @@ namespace Aurora::Async template, typename Job_t = FJob, class a = const Job_t &, class b = Task_t &, class WorkerId_tt = WorkerId_t, AU_TEMPLATE_ENABLE_WHEN(std::is_same_v)> static AuSPtr NewWork(const WorkerId_tt &worker, a task, b job, bool enableWait = false) - { - auto baa = AuMakeShared>(task, job); - return NewWorkItem(worker, baa, enableWait); + { + return NewWorkItem(worker, AuMakeShared>(task, job), enableWait); } template, typename Job_t = FJob, class a = const Job_t &, class b = Task_t &, class WorkerId_tt = WorkerId_t, AU_TEMPLATE_ENABLE_WHEN(std::is_same_v)> diff --git a/Source/Async/ThreadPool.cpp b/Source/Async/ThreadPool.cpp index 85c4eaf3..2f1f2685 100644 --- a/Source/Async/ThreadPool.cpp +++ b/Source/Async/ThreadPool.cpp @@ -577,11 +577,16 @@ namespace Aurora::Async { for (auto &[id, worker] : group->workers) { + if (group->cvWorkMutex && group->cvVariable) { AU_LOCK_GUARD(group->cvWorkMutex); worker->shuttingdown = true; group->cvVariable->Broadcast(); } + else + { + worker->shuttingdown = true; + } if (groupId != 0) {