From e4b24e7fb24c280e1db096edd983ee29e255e3b8 Mon Sep 17 00:00:00 2001 From: Zhuyie Date: Fri, 25 Sep 2020 09:36:43 +0000 Subject: Fix Eigen::ThreadPool::CurrentThreadId returning wrong thread id when EIGEN_AVOID_THREAD_LOCAL and NDEBUG are defined --- unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'unsupported/Eigen/CXX11/src') diff --git a/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h b/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h index 43a274651..23a2b5467 100644 --- a/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +++ b/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h @@ -255,7 +255,9 @@ class ThreadPoolTempl : public Eigen::ThreadPoolInterface { #ifndef EIGEN_THREAD_LOCAL std::unique_ptr new_pt(new PerThread()); per_thread_map_mutex_.lock(); - eigen_plain_assert(per_thread_map_.emplace(GlobalThreadIdHash(), std::move(new_pt)).second); + bool insertOK = per_thread_map_.emplace(GlobalThreadIdHash(), std::move(new_pt)).second; + eigen_plain_assert(insertOK); + EIGEN_UNUSED_VARIABLE(insertOK); per_thread_map_mutex_.unlock(); init_barrier_->Notify(); init_barrier_->Wait(); -- cgit v1.2.3