From d0971104ced62c288e26d5e5c6e17ddc4cb68c1d Mon Sep 17 00:00:00 2001 From: Jose Luis Blanco-Claraco Date: Tue, 10 Dec 2019 12:20:31 +0100 Subject: [PATCH] Fix broken 64bit hash in tbb Fixes #181 --- gtsam/base/ConcurrentMap.h | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/gtsam/base/ConcurrentMap.h b/gtsam/base/ConcurrentMap.h index b8388057d..2d7cbd6db 100644 --- a/gtsam/base/ConcurrentMap.h +++ b/gtsam/base/ConcurrentMap.h @@ -29,14 +29,22 @@ # undef max # undef ERROR +#include // std::hash() + // Use TBB concurrent_unordered_map for ConcurrentMap -# define CONCURRENT_MAP_BASE tbb::concurrent_unordered_map +template +using ConcurrentMapBase = tbb::concurrent_unordered_map< + KEY, + VALUE, + std::hash + >; #else // If we're not using TBB, use a FastMap for ConcurrentMap -# include -# define CONCURRENT_MAP_BASE gtsam::FastMap +#include +template +using ConcurrentMapBase = gtsam::FastMap; #endif @@ -57,11 +65,11 @@ namespace gtsam { * @addtogroup base */ template -class ConcurrentMap : public CONCURRENT_MAP_BASE { +class ConcurrentMap : public ConcurrentMapBase { public: - typedef CONCURRENT_MAP_BASE Base; + typedef ConcurrentMapBase Base; /** Default constructor */ ConcurrentMap() {}