From 5a9f66fb35d03a4da9ef8976e67a61b30aa16dcf Mon Sep 17 00:00:00 2001 From: Tobias Wood Date: Fri, 24 May 2024 16:50:14 +0000 Subject: [PATCH] Fix Thread tests --- Eigen/Core | 2 +- Eigen/src/ThreadPool/CoreThreadPoolDevice.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Eigen/Core b/Eigen/Core index 09d7d000f..e452e73ae 100644 --- a/Eigen/Core +++ b/Eigen/Core @@ -348,6 +348,7 @@ using std::ptrdiff_t; #include "src/Core/TriangularMatrix.h" #include "src/Core/SelfAdjointView.h" #include "src/Core/products/GeneralBlockPanelKernel.h" +#include "src/Core/DeviceWrapper.h" #ifdef EIGEN_GEMM_THREADPOOL #include "ThreadPool" #endif @@ -404,7 +405,6 @@ using std::ptrdiff_t; #endif #include "src/Core/GlobalFunctions.h" -#include "src/Core/DeviceWrapper.h" // IWYU pragma: end_exports #include "src/Core/util/ReenableStupidWarnings.h" diff --git a/Eigen/src/ThreadPool/CoreThreadPoolDevice.h b/Eigen/src/ThreadPool/CoreThreadPoolDevice.h index 5611a22bd..ad786fe18 100644 --- a/Eigen/src/ThreadPool/CoreThreadPoolDevice.h +++ b/Eigen/src/ThreadPool/CoreThreadPoolDevice.h @@ -77,7 +77,7 @@ struct CoreThreadPoolDevice { Index size = end - begin; eigen_assert(size % PacketSize == 0 && "this function assumes size is a multiple of PacketSize"); Index mid = begin + numext::round_down(size >> 1, PacketSize); - Task right = [=, this, &f, &barrier]() { + Task right = [this, mid, end, &f, &barrier, level]() { parallelForImpl(mid, end, f, barrier, level); }; m_pool.Schedule(std::move(right)); @@ -96,7 +96,7 @@ struct CoreThreadPoolDevice { Index outerSize = outerEnd - outerBegin; if (outerSize > 1) { Index outerMid = outerBegin + (outerSize >> 1); - Task right = [=, this, &f, &barrier]() { + Task right = [this, &f, &barrier, outerMid, outerEnd, innerBegin, innerEnd, level]() { parallelForImpl(outerMid, outerEnd, innerBegin, innerEnd, f, barrier, level); }; m_pool.Schedule(std::move(right)); @@ -105,7 +105,7 @@ struct CoreThreadPoolDevice { Index innerSize = innerEnd - innerBegin; eigen_assert(innerSize % PacketSize == 0 && "this function assumes innerSize is a multiple of PacketSize"); Index innerMid = innerBegin + numext::round_down(innerSize >> 1, PacketSize); - Task right = [=, this, &f, &barrier]() { + Task right = [this, &f, &barrier, outerBegin, outerEnd, innerMid, innerEnd, level]() { parallelForImpl(outerBegin, outerEnd, innerMid, innerEnd, f, barrier, level); }; m_pool.Schedule(std::move(right));