diff options
author | Rasmus Munk Larsen <rmlarsen@google.com> | 2018-08-23 12:54:33 -0700 |
---|---|---|
committer | Rasmus Munk Larsen <rmlarsen@google.com> | 2018-08-23 12:54:33 -0700 |
commit | 668690978ff66151b2a495767c7daf33d06be4a5 (patch) | |
tree | 9db2c3bebacda3def6438da410605a0ad70d32c2 /unsupported/Eigen/CXX11/src | |
parent | 6cedc5a9b38d6ddda69d532b28dff9ee5c2d1c04 (diff) |
Pad PerThread when we emulate thread_local to prevent false sharing.
Diffstat (limited to 'unsupported/Eigen/CXX11/src')
-rw-r--r-- | unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h b/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h index d710faa94..1cb63bcfa 100644 --- a/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +++ b/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h @@ -153,6 +153,10 @@ class ThreadPoolTempl : public Eigen::ThreadPoolInterface { ThreadPoolTempl* pool; // Parent pool, or null for normal threads. uint64_t rand; // Random generator state. int thread_id; // Worker thread index in pool. +#ifndef EIGEN_THREAD_LOCAL + // Prevent false sharing. + char pad_[128]; +#endif }; Environment env_; |