From 65ecd0195b7fb5c9514a52c117eb8c7e6e83779e Mon Sep 17 00:00:00 2001 From: assiduous Date: Mon, 14 Oct 2024 12:35:50 -0700 Subject: [PATCH] ThreadPool: allow task cancellation in EnqueueAsyncWork --- Common/interface/ThreadPool.hpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Common/interface/ThreadPool.hpp b/Common/interface/ThreadPool.hpp index ae69cd507..4b80b7b27 100644 --- a/Common/interface/ThreadPool.hpp +++ b/Common/interface/ThreadPool.hpp @@ -185,7 +185,9 @@ RefCntAutoPtr EnqueueAsyncWork(IThreadPool* pThreadPool, virtual void DILIGENT_CALL_TYPE Run(Uint32 ThreadId) override final { - ASYNC_TASK_STATUS TaskStatus = m_Handler(ThreadId); + ASYNC_TASK_STATUS TaskStatus = !m_bSafelyCancel.load() ? + m_Handler(ThreadId) : + ASYNC_TASK_STATUS_CANCELLED; SetStatus(TaskStatus); }