diff --git a/src/aws-cpp-sdk-core/include/aws/core/utils/threading/ThreadTask.h b/src/aws-cpp-sdk-core/include/aws/core/utils/threading/ThreadTask.h index 1a5234b4a57..5daa1a9229f 100644 --- a/src/aws-cpp-sdk-core/include/aws/core/utils/threading/ThreadTask.h +++ b/src/aws-cpp-sdk-core/include/aws/core/utils/threading/ThreadTask.h @@ -41,10 +41,10 @@ namespace Aws void MainTaskRunner(); private: - std::atomic m_continue; PooledThreadExecutor& m_executor; + std::atomic m_continue; + std::atomic m_detached; std::thread m_thread; - bool m_detached = false; }; } } diff --git a/src/aws-cpp-sdk-core/source/utils/threading/ThreadTask.cpp b/src/aws-cpp-sdk-core/source/utils/threading/ThreadTask.cpp index 18bb7543cad..47604841874 100644 --- a/src/aws-cpp-sdk-core/source/utils/threading/ThreadTask.cpp +++ b/src/aws-cpp-sdk-core/source/utils/threading/ThreadTask.cpp @@ -9,7 +9,11 @@ using namespace Aws::Utils; using namespace Aws::Utils::Threading; -ThreadTask::ThreadTask(PooledThreadExecutor& executor) : m_continue(true), m_executor(executor), m_thread(std::bind(&ThreadTask::MainTaskRunner, this)) +ThreadTask::ThreadTask(PooledThreadExecutor& executor) + : m_executor(executor), + m_continue(true), + m_detached(false), + m_thread([this]() { this->MainTaskRunner(); }) // lambda captures this { }